使用sql将多个值插入单个空列

时间:2014-08-21 11:09:22

标签: sql sql-server

我要更新一个包含两列和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行受影响)

但是当我查看表格时,它没有更新

由于

2 个答案:

答案 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)