¿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).


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

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


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.