即使为null,SQL增量整数列也​​是如此

时间:2013-08-06 16:27:47

标签: sql-server sql-server-2008

我有这个SQL:

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

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

如果该值为null并且以其他方式增加,如何使该值设置为1?

感谢。

3 个答案:

答案 0 :(得分:14)

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

答案 1 :(得分:5)

您也可以使用Isnull代替Coalesce,因为Isnull的速度比Coalesce

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

请查看此链接,了解两者之间的效果差异: - http://weblogs.sqlteam.com/mladenp/articles/2937.aspx

答案 2 :(得分:1)

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

update entity_table
set views = CASE
                WHEN views IS NULL THEN 1
                ELSE views + 1
            END