SQL NULL Fonctions
SQL ISNULL (), NVL (), IFNULL () et COALESCE () Fonctions
Regardez l'exemple suivant table "Produits":
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 le "UnitsOnOrder" colonne est facultative, et peut contenir des valeurs NULL.
Nous avons l'instruction SELECT suivante:
SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
FROM Products
FROM Products
Dans l'exemple ci-dessus, si l'un des "UnitsOnOrder« valeurs sont NULL, le résultat est NULL.
ISNULL Microsoft () est utilisée pour spécifier la façon dont nous voulons traiter les valeurs NULL.
Les fonctions du NVL (), IFNULL (), et COALESCE () peut aussi être utilisée pour obtenir le même résultat.
Dans ce cas, nous voulons des valeurs NULL à zéro.
Ci-dessous, si "UnitsOnOrder" est NULL ne nuira pas le calcul, parce que ISNULL () retourne un zéro si la valeur est NULL:
SQL Server / MS Access
SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products
FROM Products
Oracle
Oracle n'a pas de fonction ISNULL (). Cependant, nous pouvons utiliser la NVL () pour obtenir le même résultat:
SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products
FROM Products
MySQL
MySQL fait avoir une fonction IsNull (). Cependant, il fonctionne un peu différente de Microsoft ISNULL () de fonction.
En MySQL, nous pouvons utiliser la IFNULL () la fonction, comme ceci:
SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products
FROM Products
ou nous pouvons utiliser la COALESCE () la fonction, comme ceci:
SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products
FROM Products
0 commentaires:
Post a Comment
HELLO VISITORS THANKS FOR YOUR VISIT AND COMMENT