Dans SQL Server, nous pouvons taper IsNull()
pour déterminer si un champ est nul. Existe-t-il une fonction équivalente en PL / SQL?
sql-server
oracle
tsql
plsql
Goran
la source
la source
COALESCE
est ANSI, supporté par Postgres, MySQL ... La seule mise en garde est qu'il ne fonctionne pas forcément aussi vite que la syntaxe native.COALESCE
, ce qui présente un avantage importantNVL
: il évalue les raccourcis, alors qu'ilNVL
évalue toujours les deux paramètres. ComparezCOALESCE(1,my_expensive_function)
avecNVL(1,my_expensive_function)
.COALESE()
fonction est géniale et vous pouvez en savoir plus sur MSDOC> COALESCE - cette même syntaxe fonctionne sur Oracle. Si vos données ont des chaînes vides au lieu de NULLS vous pourriez avoir besoin quelque chose comme ceci:COALESCE(TRIM(Tbl.myField1), TRIM(Tbl.myField2)) AS "myNewField"
.Au lieu de
ISNULL()
, utilisezNVL()
.T-SQL:
PL / SQL:
la source
Utilisez également
NVL2
comme ci-dessous si vous souhaitez renvoyer une autre valeur à partir defield_to_check
:Utilisation: ORACLE / PLSQL: FONCTION NVL2
la source
Vous pouvez utiliser la condition
if x is not null then...
. Ce n'est pas une fonction. Il y a aussi laNVL()
fonction, un bon exemple d'utilisation ici: la fonction NVL réf .la source