Fonction NULL SQL
- Page précédente Nulls SQL
- Page suivante Type de données SQL
Fonctions ISNULL(), NVL(), IFNULL() et COALESCE() de SQL
Voyez le tableau "Products" suivant :
P_Id | ProductName | UnitPrice | UnitsInStock | UnitsOnOrder |
---|---|---|---|---|
1 | computer | 699 | 25 | 15 |
2 | printer | 365 | 36 | |
3 | telephone | 280 | 159 | 57 |
Si "UnitsOnOrder" est optionnel et peut contenir NULL.
Nous utilisons l'expression SELECT suivante :
SELECT ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder) FROM Produits
Dans les exemples ci-dessus, si la valeur "UnitsOnOrder" est NULL, le résultat est NULL.
La fonction ISNULL() de Microsoft est utilisée pour spécifier comment traiter les valeurs NULL.
Les fonctions NVL(), IFNULL() et COALESCE() peuvent également obtenir le même résultat.
Ici, nous souhaitons que la valeur NULL soit 0.
Ensuite, si "UnitsOnOrder" est NULL, cela est défavorable pour le calcul, donc si la valeur est NULL, ISNULL() renvoie 0.
SQL Server / MS Access
SELECT ProductName, UnitPrice * (UnitsInStock + ISNULL(UnitsOnOrder, 0)) FROM Produits
Oracle
Oracle n'a pas de fonction ISNULL(). Cependant, nous pouvons utiliser la fonction NVL() pour obtenir le même résultat :
SELECT ProductName, UnitPrice * (UnitsInStock + NVL(UnitsOnOrder, 0)) FROM Produits
MySQL
MySQL possède également une fonction similaire à ISNULL(). Cependant, son fonctionnement est légèrement différent de celui de la fonction ISNULL() de Microsoft.
Dans MySQL, nous pouvons utiliser la fonction IFNULL() comme suit :
SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0)) FROM Produits
Ou nous pouvons utiliser la fonction COALESCE() comme suit :
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0)) FROM Produits
- Page précédente Nulls SQL
- Page suivante Type de données SQL