我想写一个select,我将该字段的值显示为正常,除非该字段为null。如果它为null我想显示一个特殊的文本,例如“Field is null”。我最好怎么做?
// Oracle newbie
答案 0 :(得分:11)
我喜欢将函数COALESCE
用于此目的。它返回给定参数的第一个非空值(因此您可以一次测试多个字段)。
SELECT COALESCE(NULL, 'Special text') FROM DUAL
所以这也有效:
SELECT COALESCE(
First_Nullable_Field,
Second_Nullable_Field,
Third_Nullable_Field,
'All fields are NULL'
) FROM YourTable
答案 1 :(得分:4)
只需将NVL PL / SQL功能插入您的查询
即可SELECT NVL(SOMENULLABLEFIELD,' Field is Null')SOMENULLABLEFIELD 来自MYTABLE;
此处提供更多详细信息:http://www.techonthenet.com/oracle/functions/nvl.php
答案 2 :(得分:3)
你也可以使用DECODE:
select value, decode(value, NULL, 'SPECIAL', value) from
(select NULL value from dual
union all
select 2 value from dual
)