2016-09-16 78 views
1

任何人都可以帮助我找到一种方法来显示类别名称,年龄和总数为0即使没有记录存在?现在,当我运行下面的SQL时,它不返回任何内容。谢谢。sql server:如何显示显示类别名称,虽然没有记录exisits

SELECT 
'ADMISSION: ' AS CATEGORY_NAME 
,AGE 
,COUNT(ID) AS COUNTS 
FROM table 
GROUP BY AGE 
+1

如果没有行,则无法返回。你需要有一个返回行的查询。我的猜测是你的where谓词正在过滤掉这一行。我们可以提供帮助,但您需要提供更多详细信息。这里是一个开始的好地方。 http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ –

+1

您可以对您的SELECT语句使用IF ELSE和用户IF NOT EXISTS,并且硬编码结果。 –

+0

这种操作在表现层中通常更容易执行。你如何显示结果?调用应用程序可以处理这个吗? –

回答

1

离开了GROUP BY

SELECT 'ADMISSION: ' AS CATEGORY_NAME, 
     COUNT(ID) AS COUNTS 
FROM admission; 

聚集查询没有GROUP BY总是返回一行。如果你有一个GROUP BY,那么这样的查询将不返回一个空表(或者如果所有的行都被过滤掉了)。

另外COUNT()不返回NULL。在这种情况下,它返回0

+0

是否可以展示年龄? – Ice

+0

如果你喜欢,你可以添加'年龄'或'年龄'等'年龄'。如果表中没有行,两者都会分配NULL。 –