在 SQLServer 中,我们可以键入 IsNull()来确定字段是否为空。在 PL/SQL 中是否有等价的函数?
IsNull()
可以使用条件 if x is not null then...。这不是一个功能。还有 NVL()函数,这是一个很好的使用例子: NVL 函数参考。
if x is not null then...
NVL()
使用 NVL()代替 ISNULL()。
ISNULL()
T-SQL:
SELECT ISNULL(SomeNullableField, 'If null, this value') FROM SomeTable
PL/SQL:
SELECT NVL(SomeNullableField, 'If null, this value') FROM SomeTable
Oracle 和 SQLServer 都支持 coalesce,其功能与 nvl和 isnull基本相同。(有一些重要的区别,coalesce可以接受任意数量的参数,并返回第一个非空的参数。isnull的返回类型与第一个参数的类型匹配,而 coalesce的返回类型不匹配,至少在 SQLServer 上不匹配。)
coalesce
nvl
isnull
如果您想从 field_to_check返回其他值,也可以按照下面的方式使用 NVL2:
field_to_check
NVL2
NVL2( field_to_check, value_if_NOT_null, value_if_null )
用法: ORACLE/PLSQL: NVL2函数