簡體   English   中英

使用計數大小寫且列為空時如何返回“ 0”之類的值?

[英]How to return a value like '0' when using count case and the column is null?

我正在將此作為更大查詢的一部分

   LEFT JOIN ( SELECT value, COUNT(CASE WHEN value = '1' THEN '1' END) AS sum )

問題在於,由於這是左聯接,因此並非所有結果都存在該值。 我希望當值不存在時返回“ 0”。 我試過使用這樣的東西:

LEFT JOIN ( SELECT value, COUNT(CASE WHEN value = '1' THEN '1' ELSE '0' END) AS sum )

但這仍然只是返回null。 如果該值為null或當該結果的值在數據庫中不存在時,如何返回“ 0”? 如果值不為“ 1”,為什么我不能使用ELSE返回“ 0”,這是因為該值與“ 1”沒有區別,但是它根本不存在?

謝謝。

您無法在LEFT JOIN執行此操作,因為不存在任何行-因此該值默認為NULL

而是在引用值時使用COALESCE()

select coalesce(sum, 0)
. . .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM