In SQL (je nachdem, welche Variante Sie mögen, sagen MySQL oder MonetDB) es ist sehr intuitiv und einfach zu tun:Wie füge ich das Ergebnis einer SELECT als eine neue Spalte in einer vorhandenen Tabelle hinzu?
CREATE TABLE t2 AS SELECT c1 FROM t1;
und das Auswahlergebnis als neue Spalte in einer neuen Tabelle bekommen. Aber was, wenn Sie das Ergebnis als eine neue Spalte in der gleichen Tabelle (Tabelle t1
) wollen? Angenommen, c1
ist vom Typ INT
und kann null sein. Wir bräuchten schreiben:
ALTER TABLE t1 ADD c2 INT;
UPDATE TABLE t1 SET c2 = c1;
und das ist die einfache Version, denn wenn es sich um eine nicht-Null-Spalte ist möchten wir die neue Spalte mit einem Wert initialisiert werden müssen; und wenn die Daten von mehreren Tabellen kommen, würde ich eine Art innere Abfrage in der UPDATE
benötigen (wenn es überhaupt möglich wäre).
Kann ich irgendwie in eine Spalte mit einem einzigen Befehl auswählen?
Aber ich habe kein 't2'. Ich habe nur "t1". Ich möchte vermeiden, 't2' zu erstellen. – einpoklum