Domanda

Voglio realizzare qualcosa di quanto segue:

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

L'obiettivo sarebbe quello di selezionare un insieme di dati distinti set e quindi inserire i dati in una colonna specifica di una nuova tabella.

È stato utile?

Soluzione

Sei praticamente lì.

SELECT DISTINCT column INTO tableB FROM tableA

E 'intenzione di inserire in qualsiasi colonna (s) sono specificati nella lista di selezione, quindi si avrebbe bisogno di alias i valori selezionare se è necessario inserire in colonne di tableB che non sono in tableA.

SELECT INTO

Altri suggerimenti

SELECT column INTO tableB FROM tableA

SELECT INTO creerà un tavolo perché inserisce nuovi record in esso. Se questo non è ciò che si vuole (se tableB esiste già), allora si avrà bisogno di fare qualcosa di simile:

INSERT INTO tableB (
column
)
SELECT DISTINCT
column
FROM tableA

Ricordate che se TableB ha più colonne che solo l'uno, si avrà bisogno di elencare le colonne che verrà inserito nella (come ho fatto nel mio esempio).

Prova il seguente ...

INSERT INTO tableB (column)
Select DISTINCT(tableA.column)
FROM tableA
L'obiettivo sarebbe quello di selezionare un insieme di dati distinto e quindi inserire i dati in una colonna specifica di una nuova tabella.

Non so che cosa lo schema di tableB è ... se la tabella B esiste già e non c'è alcun vincolo univoco sulla colonna che si può fare come tutti gli altri suggeriscono qui ....

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

ma se si dispone di un vincolo univoco sulla tabella B ed esiste già dovrete escludere tali valori già nella tabella 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top