Question

Je veux accomplir quelque chose de ce qui suit:

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

Le but serait de choisir une donnée distinctes définies puis insérez les données dans une colonne spécifique d'une nouvelle table.

Était-ce utile?

La solution

Vous êtes à peu près là.

SELECT DISTINCT column INTO tableB FROM tableA

Il va insérer dans la colonne quelle que soit (s) sont spécifiées dans la liste de sélection, de sorte que vous devez sélectionner vos valeurs alias à si vous devez insérer dans les colonnes de tableB qui ne sont pas tableA.

SELECT INTO

Autres conseils

SELECT column INTO tableB FROM tableA

SELECT INTO va créer une table qui insère de nouveaux records en elle. Si ce n'est pas ce que vous voulez (si tableB existe déjà), alors vous aurez besoin de faire quelque chose comme ceci:

INSERT INTO tableB (
column
)
SELECT DISTINCT
column
FROM tableA

Rappelez-vous que si tableb a plus de colonnes que celui, vous aurez besoin d'énumérer les colonnes que vous serez inséré dans (comme je l'ai fait dans mon exemple).

Essayez les options suivantes ...

INSERT INTO tableB (column)
Select DISTINCT(tableA.column)
FROM tableA
L'objectif serait de choisir un ensemble de données distinctes et puis insérez les données dans une colonne spécifique d'une nouvelle table.

Je ne sais pas ce que le schéma de tableB est ... si la table B existe déjà et il n'y a pas de contrainte unique sur la colonne que vous pouvez faire comme tous les autres suggèrent ici ....

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

mais si vous avez une contrainte unique sur la table B et il existe déjà, vous devrez exclure les valeurs déjà dans le tableau 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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top