it-swarm.com.de

Aktualisieren Sie Werte aus einer Spalte in derselben Tabelle in eine andere in SQL Server

Ich versuche, Werte, die in TYPE1 gefunden werden, mit Werten zu überschreiben, die in TYPE2 gefunden werden.

Ich habe dieses SQL geschrieben, um es auszuprobieren, aber aus irgendeinem Grund wird es nicht aktualisiert:

select * from stuff

update stuff
set TYPE1 = TYPE2
where TYPE1 is null;

update stuff
set TYPE1 = TYPE2
where TYPE1 ='Blank';

http://www.sqlfiddle.com/#!3/a4733/17

Gibt es einen Grund, warum meine Werte in TYPE1 nicht aktualisiert werden?

28
Keven

Das funktioniert bei mir

select * from stuff

update stuff
set TYPE1 = TYPE2
where TYPE1 is null;

update stuff
set TYPE1 = TYPE2
where TYPE1 ='Blank';

select * from stuff
44
Sparky
UPDATE a
SET a.column1 = b.column2
FROM myTable a 
INNER JOIN myTable b
on a.myID = b.myID

damit sowohl "a" als auch "b" funktionieren, müssen beide Aliase definiert werden

22
Bob Taylor
UPDATE TABLE_NAME SET COLUMN_A = COLUMN_B;

Viel einfacher. Zumindest bei Oracle SQL weiß ich nicht, ob dies auch bei anderen Dialekten funktioniert.

12
Győri Sándor

Sie platzieren die Auswahlabfrage vor den Aktualisierungsabfragen, sodass nur die Anfangsdaten angezeigt werden. Stellen select * from stuff; bis zum Ende der Liste.

2
Jack

Diese Antwort zum Aktualisieren einer Spalte aus einem Teil einer anderen Spalte in derselben Tabelle.

update T1
set domainname = (New value) --Example: (SELECT LEFT(TableName.col, CHARINDEX('@',TableName.col)-1) STRIPPED_STRING FROM TableName where TableName.col = T2.Emp_ID)
from TableName T1
INNER JOIN
    TableName T2
ON 
    T1.ID= T2.ID;

Ihre select-Anweisung war vor der update-Anweisung, siehe pdated fiddle

1
Ian Kenney
update TABLE_1 a set COLUMN_1 = (select COLUMN_2 from TABLE_1 b where a.ID = b.ID)
0
Tarek.Iraqi