SQL NULLFonctions
Fonctions SQL ISNULL(), NVL(), IFNULL() et COALESCE()
Regardez la table "Products" ci-dessous :
| P_Id | ProductName | UnitPrice | UnitsInStock | UnitsOnOrder |
|---|---|---|---|---|
| 1 | Jarlsberg | 10.45 | 16 | 15 |
| 2 | Mascarpone | 32.56 | 23 | |
| 3 | Gorgonzola | 15.67 | 9 | 20 |
Supposons que "UnitsOnOrder" soit facultatif et puisse contenir des valeurs NULL.
Nous utilisons l'instruction SELECT suivante :
FROM Products
Dans l'exemple ci-dessus, si une valeur de "UnitsOnOrder" est NULL, le résultat est NULL.
La fonction ISNULL() de Microsoft est utilisée pour spécifier comment gérer les valeurs NULL.
Les fonctions NVL(), IFNULL() et COALESCE() permettent également d'obtenir le même résultat.
Ici, nous voulons que la valeur NULL soit 0.
Ci-dessous, si "UnitsOnOrder" est NULL, cela n'affectera pas le calcul, car si la valeur est NULL, ISNULL() renvoie 0 :
SQL Server / MS Access
FROM Products
Oracle
Oracle ne dispose pas d'une fonction ISNULL(). Cependant, nous pouvons utiliser la fonction NVL() pour obtenir le même résultat :
FROM Products
MySQL
MySQL dispose également d'une fonction similaire à ISNULL(). Cependant, elle fonctionne un peu différemment de la fonction ISNULL() de Microsoft.
Dans MySQL, nous pouvons utiliser la fonction IFNULL(), comme indiqué ci-dessous :
FROM Products
Ou nous pouvons utiliser la fonction COALESCE(), comme indiqué ci-dessous :
FROM Products
Autres extensions