2012-08-15 55 views
0

我正在使用oracle服务器。我试图得到一个表中的一些行的计数,当结果为0时,它总是给我一个空的结果。 我搜索的答案,并找到了一些,所以我想这些不同的解决方案,但没有工作:需要计数返回0,但没有空的结果

SELECT IFNULL(count(*), 0) as nb 
FROM tbl1 
WHERE id_tbl1='1' 
GROUP BY id_tbl2 
ORDER BY id_tbl2 

SELECT IFNULL(count(id_tbl2), 0) as nb 
FROM tbl1 
WHERE id_tbl1='1' 
GROUP BY id_tbl2 
ORDER BY id_tbl2 

SELECT COALESCE(id_tbl2, 0) as nb 
FROM tbl1 
WHERE id_tbl1='1' 
GROUP BY id_tbl2 
ORDER BY id_tbl2 

感谢您的帮助

+0

是不是0等于null(即没有)? – 2012-08-15 05:33:58

+1

@SimonM我不认为整数0 == DBNULL。毕竟,你可以有一个可以为NULL或0的可为空的整数字段,在这种情况下NULL!= 0 – Adrian 2012-08-15 05:44:20

回答

3

取出GROUP BY条款,所以你将有结果,即使它是空的。

SQLFiddle Demo

+0

谢谢,我必须做更多的查询来做我想做的事情,但它解决了我的问题:) – BastienSander 2012-08-15 07:07:17