ISNULL (Transact-SQL)
Remplace NULL par la valeur de remplacement spécifiée.
Conventions de la syntaxe de Transact-SQL
Syntaxe
ISNULL ( check_expression , replacement_value )
Arguments
check_expression
Représente l'expression dans laquelle la valeur NULL est recherchée. check_expression peut être de n'importe quel type.
replacement_value
Expression à renvoyer si check_expression renvoie la valeur NULL. Le type de replacement_value doit pouvoir être implicitement converti en type check_expresssion.
Notes
La valeur de check_expression est renvoyée si elle est différente de NULL. Dans le cas contraire, la valeur de replacement_value est renvoyée dès lors qu'elle a été implicitement convertie en type check_expression, si leurs types étaient différents.
Types renvoyés
Renvoie le même type que check_expression.
Exemples
A. Utilisation de ISNULL avec AVG
L'exemple suivant recherche la moyenne du poids de tous les produits. La valeur 50
se substitue à toutes les entrées NULL de la colonne Weight
de la table Product
.
USE AdventureWorks;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
Voici l'ensemble des résultats.
--------------------------
59.79
(1 row(s) affected)
B. Utilisation de ISNULL
Dans l'exemple suivant, la description (« Description »), le pourcentage de remise (« DiscountPct »), la quantité minimale (« MinQty ») et la quantité maximale (« Max Quantity ») sont sélectionnés pour toutes les offres spéciales figurant dans AdventureWorks
. Si la quantité maximale associée à une offre spéciale déterminée est NULL, MaxQty
présente la valeur 0.00
dans l'ensemble de résultats.
USE AdventureWorks;
GO
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
FROM Sales.SpecialOffer;
GO
Voici l'ensemble des résultats.
Description DiscountPct MinQty Max Quantity
--------------- ------------- -------- ---------------
No Discount 0.00 0 0
Volume Discount 0.02 11 14
Volume Discount 0.05 15 4
Volume Discount 0.10 25 0
Volume Discount 0.15 41 0
Volume Discount 0.20 61 0
Mountain-100 Cl 0.35 0 0
Sport Helmet Di 0.10 0 0
Road-650 Overst 0.30 0 0
Mountain Tire S 0.50 0 0
Sport Helmet Di 0.15 0 0
LL Road Frame S 0.35 0 0
Touring-3000 Pr 0.15 0 0
Touring-1000 Pr 0.20 0 0
Half-Price Peda 0.50 0 0
Mountain-500 Si 0.40 0 0
(16 row(s) affected)
Voir aussi
Référence
Expressions (Transact-SQL)
IS [NOT] NULL (Transact-SQL)
Fonctions système (Transact-SQL)
WHERE (Transact-SQL)
COALESCE (Transact-SQL)