空结果时Oracle返回常量

时间:2015-01-23 19:05:26

标签: sql oracle

我试图找出当结果集为空时如何返回常量。

实施例

查询将是:

select employee_id from employee where name = 'John_Doe';

对于这种情况,John Doe在系统中不存在。而不是返回一个空集,我怎么能返回一个常量,例如数字0?我已经看过案例陈述的内容,但我不确定如何实现它。

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

当我遇到总是返回一行的问题时,我经常使用聚合。如果没有匹配,以下内容将返回NULL

select max(employee_id)
from employee
where name = 'John_Doe';

以下返回0:

select coalesce(max(employee_id), 0)
from employee
where name = 'John_Doe';