Crear tabla a partir de una consulta a otra tabla

SQL Server

En SQL es posible crear una tabla e insertar datos en ella en una sola sentencia consultando otra tabla (o varias):


select CAMPOS_NUEVA_TABLA
into NUEVA_TABLA
from TABLA
where CONDICION;

Es decir, se crea una nueva tabla y se inserta en ella el resultado de una consulta a otra tabla.

Un ejemplo prácitco sería el siguiente:

En un sistema web tenemos una tabla llamada "clientes" y necesitamos crear otra tabla identificada como "pais" que contenga los nombres de los paises.

La tabla "pasies", que vamos a crear, contendrá solamente un campo llamado "nombre_pais". La tabla clientes contiene varios registros con paises diferentes.

Podemos crear la tabla "paises" con el campo "nombre_pais" consultando la tabla "clientes" y en el mismo momento insertar la información:

  
select distinct (pais) as nombre_pais
into paises
from clientes
where activo=1

Los campos de la nueva tabla tienen el mismo nombre, tipo de dato y valores almacenados que los campos listados de la tabla consultada; si se quiere dar otro nombre a los campos de la nueva tabla se deben especificar alias.

Nota: se puede emplear "group by", funciones de agrupamiento y "order by" en las consultas. También podemos emplear "select... into" con combinaciones, para crear una tabla que contenga

tags: