Fonction NULL 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