我在数据库中有一个表dbo.People
,其中一列是Name
。但是,某些字段缺少名称值。因此,我尝试用No Name
替换空字段。还有一个ID
列,其值为1, 2, 3, 4,
,依此类推。
到目前为止我所拥有的:
SELECT ISNULL(Name, 'No Name') FROM dbo.People;
然后我要分组并计算该名称出现的次数
SELECT COUNT(ID), Name
FROM dbo.People
GROUP BY Name;
这有效,但是我的结果仍然显示一个空白值以及该空白值出现的次数,而不是No Name
。
答案 0 :(得分:4)
感谢Squirrel和其他评论者,我键入查询的方式使它成为两个单独的查询。
我发现的正确方法是将它们组合为一个:
SELECT COUNT(ID), ISNULL(Name, 'No Name')
FROM dbo.People
GROUP BY Name;
答案 1 :(得分:3)
用例何时
select sum(case when name='No Name' then 1 else 0 end) as cnt,name from
(
SELECT coalesce(Name, 'No Name' ) as name
FROM dbo.People
) t group by name
答案 2 :(得分:0)
您是否只想获取NULL出现?
那么就不需要太复杂了,只是记住,您不能与缺乏价值/数据的事物进行比较,但是可以对其进行检查。
SELECT Count(ID)
FROM dbo.People
WHERE Name IS NULL