Qual é o equivalente do Oracle da função IsNull () do SQL Server?

Respostas:

131

coalesceé compatível com Oracle e SQL Server e tem essencialmente a mesma função que nvle isnull. (Existem algumas diferenças importantes, coalescepode receber um número arbitrário de argumentos e retorna o primeiro não nulo. O tipo de retorno para isnullcorresponde ao tipo do primeiro argumento, que não é verdadeiro para coalesce, pelo menos no SQL Server.)

Shannon Severance
fonte
9
+1: COALESCEé ANSI, suportado por Postgres, MySQL ... A única ressalva é que ele não necessariamente executa tão rápido quanto a sintaxe nativa.
Pôneis OMG de
17
+1 para COALESCE, que tem um benefício importante sobre NVL: faz avaliação de atalho, enquanto NVLsempre avalia ambos os parâmetros. Compare COALESCE(1,my_expensive_function)com NVL(1,my_expensive_function).
Jeffrey Kemp de
Esta COALESE()função é ótima e você pode ler sobre ela em MSDOC> COALESCE - esta mesma sintaxe funciona no Oracle. Se os dados tem cadeias vazias em vez de NULLS você pode precisar de algo como isto: COALESCE(TRIM(Tbl.myField1), TRIM(Tbl.myField2)) AS "myNewField".
SherlockSpreadsheets
108

Em vez de ISNULL(), use NVL().

T-SQL:

SELECT ISNULL(SomeNullableField, 'If null, this value') FROM SomeTable

PL / SQL:

SELECT NVL(SomeNullableField, 'If null, this value') FROM SomeTable
BoltClock
fonte
2
Responde à pergunta explicitamente.
Gary Huckabone
31

Use também NVL2como a seguir se desejar retornar outro valor de field_to_check:

NVL2( field_to_check, value_if_NOT_null, value_if_null )

Uso: ORACLE / PLSQL: NVL2 FUNCTION

MinhD
fonte
7

Você pode usar a condição if x is not null then.... Não é uma função. Também tem a NVL()função, um bom exemplo de uso aqui: função NVL ref .

FrustratedWithFormsDesigner
fonte