我正在使用SQL Server数据库,并想为表的列设置默认值
SELECT
COUNT(DISTINCT CASE WHEN id = '5' THEN sid ELSE '0' END) AS 'total'
FROM records
如果此查询未返回任何内容,我想将默认值设置为0。
答案 0 :(得分:2)
此查询:
SELECT COUNT(DISTINCT CASE WHEN id = 5 THEN sid END) As total
FROM records
总是将仅返回一行。如果没有符合条件的行,则该值为0
。 COUNT()
不返回NULL
;它返回0
。
请注意,id
可能是数字,因此我删除了单引号。 ELSE
子句没有任何意义。我认为在id <> 5
时忽略值更有意义。
这个特定的查询最好写成:
SELECT COUNT(DISTINCT sid) As total
FROM records
WHERE id = 5;