我有这个 SQL 语句:
update entity_table set views = views + 1 where id = {id of entity}
视图列是可空的。因此,只有当该列具有非空值时才起作用。
如果为 null,则如何使此语句将值设置为 1,并递增否则?
谢谢。
我有这个 SQL 语句:
update entity_table set views = views + 1 where id = {id of entity}
视图列是可空的。因此,只有当该列具有非空值时才起作用。
如果为 null,则如何使此语句将值设置为 1,并递增否则?
谢谢。
UPDATE entity_table
SET views = Coalesce(views, 0) + 1
IsNull()
而不是标准、更灵活和强大的 Coalesce()
? - gvee你可以使用Isnull
替代Coalesce
,因为Isnull
比Coalesce
更快。
UPDATE entity_table
SET views = isnull(views, 0) +1
查看这个链接了解两者之间性能差异的原因:- http://weblogs.sqlteam.com/mladenp/articles/2937.aspx
我更喜欢其他两个答案,但这也可能对你在其他情况下有所帮助。
update entity_table
set views = CASE
WHEN views IS NULL THEN 1
ELSE views + 1
END