Quel est l'équivalent Oracle de la fonction IsNull () de SQL Server?


Réponses:


131

coalesceest pris en charge dans Oracle et SQL Server et remplit essentiellement la même fonction que nvlet isnull. (Il existe des différences importantes, coalescepeut prendre un nombre arbitraire d'arguments et renvoie le premier non nul. Le type de retour pour isnullcorrespond au type du premier argument, ce qui n'est pas vrai pour coalesce, du moins sur SQL Server.)


9
+1: COALESCEest ANSI, supporté par Postgres, MySQL ... La seule mise en garde est qu'il ne fonctionne pas forcément aussi vite que la syntaxe native.
OMG Ponies

17
+1 pour COALESCE, ce qui présente un avantage important NVL: il évalue les raccourcis, alors qu'il NVLévalue toujours les deux paramètres. Comparez COALESCE(1,my_expensive_function)avec NVL(1,my_expensive_function).
Jeffrey Kemp

Cette 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".
SherlockSpreadsheets

108

Au lieu de ISNULL(), utilisez NVL().

T-SQL:

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

PL / SQL:

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

2
Répond explicitement à la question.
Gary Huckabone

31

Utilisez également NVL2comme ci-dessous si vous souhaitez renvoyer une autre valeur à partir de field_to_check:

NVL2( field_to_check, value_if_NOT_null, value_if_null )

Utilisation: ORACLE / PLSQL: FONCTION NVL2


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.