No SQL Server, podemos digitar IsNull()
para determinar se um campo é nulo. Existe uma função equivalente no PL / SQL?
sql-server
oracle
tsql
plsql
Goran
fonte
fonte
COALESCE
é ANSI, suportado por Postgres, MySQL ... A única ressalva é que ele não necessariamente executa tão rápido quanto a sintaxe nativa.COALESCE
, que tem um benefício importante sobreNVL
: faz avaliação de atalho, enquantoNVL
sempre avalia ambos os parâmetros. CompareCOALESCE(1,my_expensive_function)
comNVL(1,my_expensive_function)
.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"
.Em vez de
ISNULL()
, useNVL()
.T-SQL:
PL / SQL:
fonte
Use também
NVL2
como a seguir se desejar retornar outro valor defield_to_check
:Uso: ORACLE / PLSQL: NVL2 FUNCTION
fonte
Você pode usar a condição
if x is not null then...
. Não é uma função. Também tem aNVL()
função, um bom exemplo de uso aqui: função NVL ref .fonte