2012-08-15 64 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