J'essaie d'écraser des valeurs trouvées dans TYPE1 avec des valeurs trouvées dans TYPE2.
J'ai écrit ce code SQL pour l'essayer, mais pour une raison quelconque, il n'est pas mis à jour:
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
Une raison pour laquelle mes valeurs dans TYPE1 ne sont pas mises à jour?
Ça marche pour moi
select * from stuff
update stuff
set TYPE1 = TYPE2
where TYPE1 is null;
update stuff
set TYPE1 = TYPE2
where TYPE1 ='Blank';
select * from stuff
UPDATE a
SET a.column1 = b.column2
FROM myTable a
INNER JOIN myTable b
on a.myID = b.myID
pour que "a" et "b" fonctionnent, les deux alias doivent être définis
UPDATE TABLE_NAME SET COLUMN_A = COLUMN_B;
Beaucoup plus facile. Au moins sur Oracle SQL, je ne sais pas si cela fonctionne également sur d’autres dialectes.
Vous mettez la requête select avant les requêtes de mise à jour, de sorte que vous ne voyez que les données initiales. Mettez select * from stuff;
jusqu'à la fin de la liste.
Cette réponse concerne la mise à jour d'une colonne à partir d'une partie d'une autre colonne de la même table.
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;
Votre instruction select était avant l'instruction update, voir Violon mis à jour
update TABLE_1 a set COLUMN_1 = (select COLUMN_2 from TABLE_1 b where a.ID = b.ID)