【问题标题】:SQL Server Updating Multiple ColumnsSQL Server 更新多列
【发布时间】:2013-06-18 15:03:27
【问题描述】:

我有一个更新多列的脚本。但是,我想确保 UPDATE 列表中的列仅在它们为 NULL 时更新。这是脚本:

DECLARE @blank nvarchar (255) = '';
UPDATE Table
SET
    Column1 = @blank,
    Column2 = @blank,
    Column3 = @blank
WHERE
    Column1 IS NULL OR
    Column2 IS NULL OR
    Column3 IS NULL

这不起作用,因为即使只有 Column1 为空,所有列也会更新。

如果该值为 NULL,我只需要更新列值。

【问题讨论】:

    标签: sql sql-server sql-server-2008


    【解决方案1】:

    您可以使用条件更新:

    update table
        set Column1 = coalesce(Column1, @blank),
            Column2 = coalesce(Column2, @blank),
            Column3 = coalesce(Column3, @blank)
        where Column1 IS NULL OR
              Column2 IS NULL OR
              Column3 IS NULL;
    

    如果列值不为空,则分配原始值。否则,分配空白值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      • 2013-03-30
      相关资源
      最近更新 更多