SQL Update如果为null则添加1,否则将1添加到当前值

时间:2018-03-03 18:03:57

标签: sql sql-server tsql

我有一个更新表格中的字段的查询。可能的情况是,要更新的列可以是NULL,如果是这种情况我想将1添加到该单元格。否则,我想将1添加到该字段的当前值。

UPDATE SET Scheduled = Scheduled + 1

除非单元格的值为NULL,否则不会添加1值。

4 个答案:

答案 0 :(得分:3)

您可以使用CASE表达式:

UPDATE table_name
SET Scheduled = CASE WHEN Scheduled IS NULL THEN 1
                     ELSE Scheduled + 1
                END
WHERE ...;

答案 1 :(得分:3)

你可以使用它。

UPDATE table SET Scheduled = ISNULL(Scheduled,0) + 1

答案 2 :(得分:3)

虽然您可以在update

中轻松完成此操作
update t
    set scheduled = coalesce(scheduled + 1, 1)
    where . . .;

我建议删除它的必要性,将值默认为0.我怀疑在你的上下文中有意义。如果表中有数据:

update t
    set scheduled = 0
    where scheduled is null;

alter table t alter scheduled int not null default 0;

(注意:您也可以在更改中使用with values,但update会清楚地显示意图。)

答案 3 :(得分:0)

更新yourTable set yourColumn =(coalesce(yourColumn,0)+1)

或者您可以使用

更新yourTable设置yourColumn =(nullif(yourColumn,0)+1)