Oracle 等效于 SQLServer 的 IsNull()函数是什么?

在 SQLServer 中,我们可以键入 IsNull()来确定字段是否为空。在 PL/SQL 中是否有等价的函数?

309705 次浏览

可以使用条件 if x is not null then...。这不是一个功能。还有 NVL()函数,这是一个很好的使用例子: NVL 函数参考

使用 NVL()代替 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,其功能与 nvlisnull基本相同。(有一些重要的区别,coalesce可以接受任意数量的参数,并返回第一个非空的参数。isnull的返回类型与第一个参数的类型匹配,而 coalesce的返回类型不匹配,至少在 SQLServer 上不匹配。)

如果您想从 field_to_check返回其他值,也可以按照下面的方式使用 NVL2:

NVL2( field_to_check, value_if_NOT_null, value_if_null )

用法: ORACLE/PLSQL: NVL2函数