2012-03-26 9 views

Antwort

31
INSERT INTO table2 (column1, column2, column3) 
SELECT column1, 'no', column3 FROM table2 WHERE column2 = 'yes' 

Hoffentlich ist dies ein bisschen klarer, wie Sie dies tun. Wie Sie sehen können, habe ich zwei Spalten von table2 und für die andere Spalte einen Textwert anstelle des Werts für column2 verwendet.

Andere Muster können Sie:.

eine Spalte Kombinieren und einen anderen Text (nimmt die Spalte ist bereits ein String-Datentyp

INSERT INTO table2 (column1, column2) 
SELECT column1 + 'no', column2 FROM table2 WHERE column2 = 'yes' 

eine Spalte kombinieren und etwas Text, Ein Beispiel, bei dem die Spalte ist eine Zeichenkette und ein, wo es nicht ist.

INSERT INTO table2 (column1, column2) 
SELECT column1 + 'no', 'A' + cast(column2 as Varchar (10)) FROM table2 WHERE column2 = 'yes' 
+0

kann ich Platzhalter verwenden? – Agzam

+2

Das ist kein Umstand, in dem Sie Platzhalter in einer Einfügung verwenden sollten – HLGEM

+0

Wie Sie das gleiche tun, aber mit einer kleinen Änderung. Beispiel: Ich möchte 'column2 val + test' anstelle von 'no' einfügen. Ich meine den Wert aus der swlwcted-Zeile mit angehängtem Text einzufügen. –

7

Die Auswahlliste wird wahrscheinlich kopierte Spalten (nach Namen) und geänderte Spalten (nach gewünschten Werten) mischen.

+1

Nur um zu klären, tun sie Ihre Änderungen im Rahmen des Auswahlteils der Anweisung. – TimothyAWiseman

+0

wie genau ....? – Agzam

+0

Es hängt von Ihren Bedürfnissen ab. Beispielsweise. Angenommen, Ihr Primärschlüssel ist eine bedeutungslose Ganzzahl mit einer Spaltennamen-ID ohne Schlüsselzuweisungsmechanismus (z. B. Autoinkrementierungsspalte). Angenommen, Sie möchten den Wert von Spalte1 aus dem Datensatz mit der als @Source übergebenen ID kopieren und den Wert von Spalte2 auf einen neuen Wert setzen, der als @param übergeben wird. Führen Sie dann Folgendes mit den zwei Parametern aus: INSERT INTO t (ID, Spalte1, Spalte2) SELECT m.id + 1, source.column1, @param FROM tm, t Quelle WHERE source.id = @source AND m.id = (SELECT MAX (id) FROM t) ' –

1

Say Spalte int

INSERT INTO table(column1,column2) SELECT column1 + 1, column2 -1 FROM table 

Sie Spalten multiplizieren können und String-Funktionen ausführen.

Verwandte Themen