ISNULL (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

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

Conventions de la syntaxe Transact-SQL

Syntaxe

ISNULL ( check_expression , replacement_value )  

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

check_expression
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 a la valeur NULL. replacement_value doit être d’un type pouvant être implicitement converti vers le type de check_expression.

Types de retour

Renvoie le même type que check_expression. Si une valeur littérale NULL est fournie en tant que check_expression, renvoie le type de données de replacement_value. Si une valeur littérale NULL est fournie en tant que check_expression et qu’aucun argument replacement_value n’est fourni, renvoie un type int.

Notes

La valeur de check_expression est renvoyée si elle n’est pas NULL ; sinon, l’argument replacement_value est renvoyé après avoir été implicitement converti vers le type de check_expression, si les types sont différents. replacement_value peut être tronqué si replacement_value dépasse check_expression.

Notes

Utilisez COALESCE (Transact-SQL) pour retourner la première valeur non NULL.

Exemples

R. 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 AdventureWorks2022;  
GO  
SELECT AVG(ISNULL(Weight, 50))  
FROM Production.Product;  
GO  

Voici le jeu de résultats obtenu.

-------------------------- 
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 AdventureWorks2022. 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 AdventureWorks2022;  
GO  
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'  
FROM Sales.SpecialOffer;  
GO  

Voici le jeu de résultats obtenu.

Description DiscountPct MinQty Quantité maximale
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 AdventureWorks2022;  
GO  
SELECT Name, Weight  
FROM Production.Product  
WHERE Weight IS NULL;  
GO  

Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)

D. Utilisation de ISNULL avec AVG

L’exemple suivant recherche la moyenne du poids de tous les produits dans un exemple de table. La valeur 50 se substitue à toutes les entrées NULL de la colonne Weight de la table Product.

-- Uses AdventureWorks  
  
SELECT AVG(ISNULL(Weight, 50))  
FROM dbo.DimProduct;  

Voici le jeu de résultats obtenu.

--------------------------   
52.88   

E. Utilisation de ISNULL

L’exemple suivant utilise ISNULL pour tester les valeurs NULL dans la colonne MinPaymentAmount et afficher la valeur 0.00 pour les lignes.

-- Uses AdventureWorks  
  
SELECT ResellerName,   
       ISNULL(MinPaymentAmount,0) AS MinimumPayment  
FROM dbo.DimReseller  
ORDER BY ResellerName;  
  

Voici un jeu de résultats partiel.

ResellerName MinimumPayment
A Bicycle Association 0,0000
A Bike Store 0,0000
A Cycle Shop 0,0000
A Great Bicycle Company 0,0000
A Typical Bike Shop 200,0000
Acceptable Sales & Service 0,0000

F. Utilisation de la fonction IS NULL pour tester les valeurs NULL dans une clause WHERE

L’exemple suivant recherche tous les produits qui comportent NULL dans la colonne Weight. Notez l'espace entre IS et NULL.

-- Uses AdventureWorks  
  
SELECT EnglishProductName, Weight  
FROM dbo.DimProduct  
WHERE Weight IS NULL;  

Voir aussi

Expressions (Transact-SQL)
IS NULL (Transact-SQL)
Fonctions système (Transact-SQL)
WHERE (Transact-SQL)
COALESCE (Transact-SQL)