我有一个更新表格中的字段的查询。可能的情况是,要更新的列可以是NULL
,如果是这种情况我想将1
添加到该单元格。否则,我想将1
添加到该字段的当前值。
UPDATE SET Scheduled = Scheduled + 1
除非单元格的值为NULL
,否则不会添加1
值。
答案 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)