web-dev-qa-db-fra.com

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

Dans SQL Server, nous pouvons taper IsNull() pour déterminer si un champ est null. Existe-t-il une fonction équivalente en PL/SQL?

101
Goran

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

122
Shannon Severance

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
104
BoltClock

Utilisez également NVL2 comme 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

26
MinhD

Vous pouvez utiliser la condition if x is not null then.... Ce n'est pas une fonction. Il y a aussi la fonction NVL(), un bon exemple d'utilisation ici: réf. De la fonction NVL .