我要更新一个包含两列和300行的表
其中一列已填充,第二列为空。
如何使用查询一次更新Null列。
我尝试的是
UPDATE tablename
SET Column_2 = (
CASE column_2
WHEN 'NULL'
THEN 'Value1'
WHEN 'NULL'
THEN 'Value2'...
WHEN 'NULL'
THEN 'Value300'
ELSE column_2
END
)
当我运行此查询时,编辑说(300行受影响)
但是当我查看表格时,它没有更新
由于
答案 0 :(得分:3)
我认为您可以通过枚举行然后使用枚举来执行您想要的操作:
with toupdate as (
select t.*, row_number() over (order by column_1) as seqnum
from tablename t
)
update tablename
set colum_2 = (case when seqnum = 1 then 'Value1'
when seqnum = 2 then 'Value2'
.
.
.
when seqnum = 300 then 'Value300'
else s_type
end);
答案 1 :(得分:0)
尝试这样的事情。当您引用它时,SQL也不会将'NULL'识别为字符串。真正的NULL值在没有单引号的情况下称为NULL。
UPDATE tablename
SET colum_2 = COALESCE('Value1','Value2','Value300',S_Type)