Frage

Ich möchte Folgendes erreichen:

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

Das Ziel wäre, einen bestimmten Datensatz auszuwählen und diese Daten dann in eine bestimmte Spalte einer neuen Tabelle einzufügen.

War es hilfreich?

Lösung

Du hast es so ziemlich geschafft.

SELECT DISTINCT column INTO tableB FROM tableA

Es wird in alle in der Auswahlliste angegebenen Spalten eingefügt. Sie müssten also Ihren ausgewählten Werten einen Alias ​​geben, wenn Sie in Spalten von einfügen müssen tableB die nicht drin sind tableA.

AUSWÄHLEN IN

Andere Tipps

SELECT column INTO tableB FROM tableA

SELECT INTO eine Tabelle erstellen, da es neue Datensätze in sie einfügt. Wenn das nicht das, was Sie wollen (wenn tableB bereits vorhanden ist), dann müssen Sie etwas wie dies tun:

INSERT INTO tableB (
column
)
SELECT DISTINCT
column
FROM tableA

Denken Sie daran, dass, wenn TableB hat mehr Spalten, die nur die eine, müssen Sie die Spalten aufzulisten, die Sie in eingefügt werden (wie ich in meinem Beispiel getan haben).

Versuchen Sie, die folgende ...

INSERT INTO tableB (column)
Select DISTINCT(tableA.column)
FROM tableA
Das Ziel wäre, eine bestimmte Datenmenge wählen und dann die Daten in einer bestimmten Spalte einer neuen Tabelle einfügen.

Ich weiß nicht, was das Schema von tableB ist ... wenn Tabelle B ist bereits vorhanden und es gibt keine eindeutige Einschränkung auf die Spalte, die Sie als alle anderen tun können, deuten darauf hin, hier ....

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

aber wenn Sie eine eindeutige Einschränkung auf Tabelle B haben und es existiert bereits werden Sie diese Werte bereits in Tabelle B ausschließen müssen ...

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top