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'部分,或者它是一个游标?无论哪种方式显示其他代码可能会揭示如何使用它的问题。你的列名看起来有点奇怪,所以也许发布实际的表定义。 –