0
我對錶有一個簡單的查詢:COUNT返回NULL,應返回0
Person id Organization id employee_nam age busines_group_id
123 Zuyo 10 John 30 81
2457 Zuyo 10 Geet 69 81
56 Ghiya 12 paul 20 81
frei 13 81
SELECT
COUNT(DISTINCT ped.person_id)
FROM
per_emp_detail ped
WHERE
ped.business_group_id = 81
AND
ped.id = NVL(p_org_id, ped.organization_id);
SELECT
NVL(COUNT(DISTINCT ped.person_id), 0)
FROM
per_emp_detail ped
WHERE
ped.business_group_id = 81
AND
ped.id = NVL(p_org_id, ped.organization_id);
p_org_id
是我傳遞了ID的參數可以是10,12,或13 COUNT
返回2
10. 1
爲id 12,但返回NULL
爲id 13. 我想0
在這種情況下返回。
NVL
和CASE
也不起作用。
'NVL(計數(不同ped.person_id),0)' – Laurence
它不工作。我試過了。 –
'count()'不能返回null。大概這是PL/SQL或者'p_org_id'沒有意義,那麼這實際上是你的代碼 - 你是否已經移除了'into'部分,或者它是一個遊標?無論哪種方式顯示其他代碼可能會揭示如何使用它的問題。你的列名看起來有點奇怪,所以也許發佈實際的表定義。 –