Partager via


ISNULL (Transact-SQL)

Remplace NULL par la valeur de remplacement spécifiée.

Icône Lien de rubriqueConventions de 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.

Types de retour

Renvoie le même type que check_expression.

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.

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 AdventureWorks2008R2;
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 AdventureWorks2008R2. 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 AdventureWorks2008R2;
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)

C. Test de valeur NULL dans une clause WHERE

N'utilisez pas ISNULL pour rechercher des valeurs NULL. Utilisez IS NULL à la place. L'exemple suivant recherche tous les produits qui comportent NULL dans la colonne weight. Notez l'espace entre IS et NULL.

USE AdventureWorks2008R2;
GO
SELECT Name, Weight
FROM Production.Product
WHERE Weight IS NULL;
GO