Pregunta

Quiero lograr algo de lo siguiente:

Select DISTINCT(tableA.column) INTO tableB.column FROM tableA

El objetivo sería seleccionar un conjunto de datos distintas establecidos y luego insertar esos datos en una columna específica de una nueva mesa.

¿Fue útil?

Solución

Usted es bastante allí.

SELECT DISTINCT column INTO tableB FROM tableA

Se va a insertar en cualquier columna (s) se especifican en la lista de selección, por lo que tendría que ser alias de sus valores seleccione si es necesario insertar en columnas de tableB que no están en tableA.

SELECT INTO

Otros consejos

SELECT column INTO tableB FROM tableA

SELECT INTO creará una tabla en que inserta nuevos registros en ella. Si eso no es lo que quiere (si TableB ya existe), entonces usted tendrá que hacer algo como esto:

INSERT INTO tableB (
column
)
SELECT DISTINCT
column
FROM tableA

Recuerde que si TableB tiene más columnas que sólo el uno, tendrá que hacer una lista de las columnas que se insertará en (como lo he hecho en mi ejemplo).

Pruebe lo siguiente ...

INSERT INTO tableB (column)
Select DISTINCT(tableA.column)
FROM tableA
El objetivo sería seleccionar un conjunto de datos distinto y luego insertar esos datos en una columna específica de una nueva tabla.

No sé lo que el esquema de la Tabla B es ... si la tabla B ya existe y no hay ninguna restricción única en la columna que puede hacer que cualquiera de los otros sugieren aquí ....

INSERT INTO tableB (column)Select DISTINCT(tableA.column)FROM tableA

pero si usted tiene una restricción única en la tabla B y que ya existe que tendrá que excluir a aquellos valores que ya están en la tabla B ...

INSERT INTO tableB (column)
Select DISTINCT(tableA.column)
FROM tableA
WHERE tableA.column NOT IN (SELECT /* NOTE */ tableB.column FROM tableB)
-- NOTE: Remember if there is a unique constraint you don't need the more
-- costly form of a "SELECT DISTICT" in this subquery against tableB
-- This could be done in a number of different ways - this is just
-- one version. Best version will depend on size of data in each table,
-- indexes available, etc. Always prototype different ways and measure perf.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top