¿Cuál es el equivalente en Oracle de la función IsNull () de SQL Server?

Respuestas:

131

coalescees compatible con Oracle y SQL Server y tiene esencialmente la misma función que nvly isnull. (Hay algunas diferencias importantes, coalescepuede tomar un número arbitrario de argumentos y devuelve el primero que no es nulo. El tipo de retorno para isnullcoincide con el tipo del primer argumento, que no es cierto para coalesce, al menos en SQL Server).

Despido de Shannon
fuente
9
+1: COALESCEes ANSI, compatible con Postgres, MySQL ... La única advertencia es que no necesariamente funciona tan rápido como la sintaxis nativa.
OMG Ponies
17
+1 para COALESCE, que tiene una ventaja importante NVL: realiza una evaluación de atajos, mientras que NVLsiempre evalúa ambos parámetros. Comparar COALESCE(1,my_expensive_function)con NVL(1,my_expensive_function).
Jeffrey Kemp
Esta COALESE()función es excelente y puede leer sobre ella en MSDOC> COALESCE ; esta misma sintaxis funciona en Oracle. Si los datos tienen cadenas vacías en lugar de NULLS es posible que tenga algo como esto: COALESCE(TRIM(Tbl.myField1), TRIM(Tbl.myField2)) AS "myNewField".
SherlockSpreadsheets
108

En lugar de ISNULL(), utilice NVL().

T-SQL:

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

PL / SQL:

SELECT NVL(SomeNullableField, 'If null, this value') FROM SomeTable
BoltClock
fuente
2
Responde la pregunta de forma explícita.
Gary Huckabone
31

También use NVL2como se muestra a continuación si desea devolver otro valor de field_to_check:

NVL2( field_to_check, value_if_NOT_null, value_if_null )

Uso: ORACLE / PLSQL: FUNCIÓN NVL2

MinhD
fuente
7

Puedes usar la condición if x is not null then.... No es una función. También está la NVL()función, un buen ejemplo de uso aquí: NVL function ref .

FrustratedWithFormsDiseñador
fuente