9

我有这个 SQL:

update entity_table set views = views + 1 where id = {id of entity}

视图列可以为空。所以这只有在列的值不为空时才有效。

如果该语句为空,如何使该语句将值设置为 1,否则如何递增?

谢谢。

4

3 回答 3

20
UPDATE entity_table
SET    views = Coalesce(views, 0) + 1
于 2013-08-06T16:29:45.107 回答
6

您也可以使用as 来Isnull代替Coalesceas IsnullCoalesce

UPDATE entity_table
SET    views = isnull(views, 0) +1 

查看此链接以了解两者之间的性能差异:- http://weblogs.sqlteam.com/mladenp/articles/2937.aspx

于 2013-08-06T16:31:12.507 回答
2

我更喜欢其他两个答案,但这在其他情况下也可能对您有用。

update entity_table
set views = CASE
                WHEN views IS NULL THEN 1
                ELSE views + 1
            END
于 2013-08-06T17:39:14.527 回答