En SQL Server podemos escribir IsNull()
para determinar si un campo es nulo. ¿Existe una función equivalente en PL / SQL?
sql-server
oracle
tsql
plsql
Goran
fuente
fuente
COALESCE
es ANSI, compatible con Postgres, MySQL ... La única advertencia es que no necesariamente funciona tan rápido como la sintaxis nativa.COALESCE
, que tiene una ventaja importanteNVL
: realiza una evaluación de atajos, mientras queNVL
siempre evalúa ambos parámetros. CompararCOALESCE(1,my_expensive_function)
conNVL(1,my_expensive_function)
.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"
.En lugar de
ISNULL()
, utiliceNVL()
.T-SQL:
PL / SQL:
fuente
También use
NVL2
como se muestra a continuación si desea devolver otro valor defield_to_check
:Uso: ORACLE / PLSQL: FUNCIÓN NVL2
fuente
Puedes usar la condición
if x is not null then...
. No es una función. También está laNVL()
función, un buen ejemplo de uso aquí: NVL function ref .fuente