2011-11-20 47 views
6

我想在没有从查询中获得数据时显示默认消息。如何在查询中找不到匹配项时显示默认值?

例如 让我们来查询从员工

选择empname其中id = 100

如果没有数据这个搜索我想要得到Unavailable结果或所需结果匹配应该显示。

那么我应该如何编写一个SQL查询来实现这一点。

我正在使用Oracle 10g。

+1

你真的应该只返回'null',并让你的调用应用程序决定它在遇到'db_null'时将如何表现,而不是在你的数据库中执行它。 – Seph

+0

@ Seph:感谢您的提示,如果我在调用应用程序中返回null,我必须用默认消息替换null。所以,而不是如果我试图做查询本身。 – Hariharbalaji

+0

我已经想到了所有这些场景,然后只将IF()移动到SQL,因为这两个地方的行为都是相同的 – Hariharbalaji

回答

16
SELECT COALESCE((SELECT empname FROM employee WHERE id = 100), 'Unavailable') 
FROM DUAL; 

你必须包裹SELECT到另一个SELECT或没有行会被退回。没有排的地方就没有价值。