Oracle
 sql >> Base de données >  >> RDS >> Oracle

Équivalent Oracle ISNULL()

La plupart des principaux SGBD nous fournissent une fonction pour remplacer les valeurs nulles par une autre valeur.

Mais le nom de la fonction a tendance à différer d'un SGBD à l'autre. Par exemple, SQL Server a un ISNULL() fonction, tandis que d'autres (comme MySQL, MariaDB et SQLite) ont un IFNULL() fonction pour faire la même chose.

Cependant, pour confondre les choses, MySQL et MariaDB ont chacun un ISNULL() fonction qui fonctionne différemment de la fonction SQL Server du même nom (l'implémentation de MySQL et MariaDB n'accepte qu'un seul argument et renvoie 1 si c'est null et 0 si ce n'est pas le cas).

Quoi qu'il en soit, dans le cas d'Oracle Database, nous pouvons utiliser le NVL() fonction pour remplacer les valeurs nulles par une autre valeur.

En fait, Oracle Database a également un NVL2() fonction qui nous permet de fournir une autre valeur à utiliser dans le cas où le premier argument n'est pas null .

Si nous voulons simplement tester si une valeur est null ou non, nous pouvons utiliser le IS NULL condition (ou la condition IS NOT NULL pour le test opposé).

Le NVL() Fonction

Voici un exemple qui montre comment le NVL() la fonction fonctionne :

SELECT NVL(null, 'Run')
FROM DUAL;

Résultat :

Run

Dans ce cas, le premier argument était null et donc le deuxième argument a été renvoyé.

Voici ce qui se passe lorsque le premier argument n'est pas null :

SELECT NVL('Walk', 'Run')
FROM DUAL;

Résultat :

Walk

Le premier argument est renvoyé.

Le NVL2() Fonction

Comme mentionné, Oracle Database nous fournit également le NVL2() une fonction. Cette fonction nous permet de fournir une autre valeur à utiliser dans le cas où le premier argument n'est pas null .

Voici un exemple de son fonctionnement :

SELECT NVL2(null, 2, 3)
FROM DUAL;

Résultat :

3

Le premier argument était null et donc le troisième argument a été renvoyé.

Voici ce qui se passe lorsque le premier argument n'est pas null :

SELECT NVL2(1, 2, 3)
FROM DUAL;

Résultat :

2

Le deuxième argument est renvoyé.

Le IS NULL et IS NOT NULL Conditions

Si nous voulons juste savoir si oui ou non une valeur est null , nous pouvons utiliser le IS NULL condition de comparaison. Nous pouvons également utiliser IS NOT NULL pour vérifier si ce n'est pas null .

Supposons que nous ayons le tableau suivant :

SELECT * FROM Autoparts
WHERE Price IS NULL;

Résultat :

identifiant OE# PRIX MODÈLE
2 62150B3278 CAMRY
1 62150A3278 168 HILUX

Dans ce cas, le PRICE colonne contient une valeur nulle pour la première ligne, mais pas pour la deuxième ligne.

Voici un exemple d'utilisation de IS NULL contre cette table :

SELECT * FROM Autoparts
WHERE Price IS NULL;

Résultat :

identifiant OE# PRIX MODÈLE
2 62150B3278 CAMRY

Seule la ligne avec le prix nul est renvoyée.

Voici ce qui se passe lorsque nous utilisons IS NOT NULL :

SELECT * FROM Autoparts
WHERE Price IS NOT NULL;

Résultat :

identifiant OE# PRIX MODÈLE
1 62150A3278 168 HILUX

L'autre ligne est renvoyée.