使用NULL值处理非NULL数据库列

时间:2015-07-24 18:57:19

标签: sql-server stored-procedures

我想更新非空的数据库列,但我只想更新其中的一些。其余的应该是旧的价值观。如何使用SQL Server存储过程处理此问题。

1 个答案:

答案 0 :(得分:2)

执行条件update的基本语法,您想要排除某些非空值,如下所示:

UPDATE t1
SET t1.col2 = update_value
FROM table1 t1
WHERE t1.col1 IS NOT NULL
    AND NOT EXISTS (
        SELECT 1
        FROM table1
        WHERE t1.id = t2.id
            AND t.col1 IN ('value1','value2') --values you don't want to update
                    );

如果您需要更新的值较少,而不是您不需要更新的值,则可以改为:

UPDATE t1
SET t1.col2 = update_value
FROM table1 t1
WHERE t1.col1 IS NOT NULL
 AND t.col1 IN ('value1','value2'); --values you want to update