什么是Oracle等效的SQL Server的IsNull()函数?

Gor*_*ran 105 t-sql sql-server oracle plsql

在SQL Server中,我们可以键入IsNull()以确定字段是否为空.PL/SQL中是否有等效的功能?

Sha*_*nce 126

coalesceOracle和SQL Server中的支持和提供基本相同的功能nvlisnull.(有一些重要的区别,coalesce可以使用任意数量的参数,并返回第一个非空的.返回类型isnull匹配第一个参数的类型coalesce,至少在SQL Server上是不正确的.)

  • "COALESCE"为+1,与"NVL"相比有一个重要的好处:它可以进行快捷方式评估,而"NVL"则始终对两个参数进行评估.将`COALESCE(1,my_expensive_function)`与`NVL(1,my_expensive_function)`进行比较. (17认同)
  • +1:`COALESCE`是ANSI,由Postgres,MySQL支持......唯一需要注意的是它不一定像原生语法一样快. (9认同)

Bol*_*ock 107

而不是ISNULL(),使用NVL().

T-SQL:

SELECT ISNULL(SomeNullableField, 'If null, this value') FROM SomeTable
Run Code Online (Sandbox Code Playgroud)

PL/SQL:

SELECT NVL(SomeNullableField, 'If null, this value') FROM SomeTable
Run Code Online (Sandbox Code Playgroud)

  • 明确回答问题. (2认同)

Min*_*nhD 27

NVL2如果要从以下位置返回其他值,也可以使用如下所示field_to_check:

NVL2( field_to_check, value_if_NOT_null, value_if_null )
Run Code Online (Sandbox Code Playgroud)

用法:ORACLE/PLSQL:NVL2功能


Fru*_*ner 7

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