Ответ 1
Это работает для меня
select * from stuff
update stuff
set TYPE1 = TYPE2
where TYPE1 is null;
update stuff
set TYPE1 = TYPE2
where TYPE1 ='Blank';
select * from stuff
Я пытаюсь перезаписать значения, найденные в TYPE1, значениями, найденными в TYPE2.
Я написал этот SQL, чтобы попробовать его, но по какой-то причине он не обновляется:
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
Любая причина, почему мои значения в TYPE1 не обновляются?
Это работает для меня
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
чтобы работать как "a", так и "b", должны быть определены оба псевдонима
UPDATE TABLE_NAME SET COLUMN_A = COLUMN_B;
Намного легче. По крайней мере, на Oracle SQL, я не знаю, работает ли это на других диалектах.
Вы отправляете запрос выбора перед запросами обновления, поэтому вы просто видите исходные данные. Поместите select * from stuff;
в конец списка.
Это ответ об обновлении столбца из части другого столбца в той же таблице.
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;
Ваш оператор select был перед оператором обновления см. Обновленная скрипка
update TABLE_1 a set COLUMN_1 = (select COLUMN_2 from TABLE_1 b where a.ID = b.ID)