ISNULL (Transact-SQL)ISNULL (Transact-SQL)

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database ouiAzure Synapse Analytics (SQL DW) ouiParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Remplace NULL par la valeur de remplacement spécifiée.Replaces NULL with the specified replacement value.

Icône Lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

ISNULL ( check_expression , replacement_value )  

ArgumentsArguments

check_expressioncheck_expression
Expression dans laquelle la valeur NULL est recherchée.Is the expression to be checked for NULL. check_expression peut être de n’importe quel type.check_expression can be of any type.

replacement_valuereplacement_value
Expression à renvoyer si check_expression a la valeur NULL.Is the expression to be returned if check_expression is NULL. replacement_value doit être d’un type pouvant être implicitement converti vers le type de check_expression.replacement_value must be of a type that is implicitly convertible to the type of check_expression.

Types de retourReturn Types

Renvoie le même type que check_expression.Returns the same type as check_expression. Si une valeur littérale NULL est fournie en tant que check_expression, renvoie le type de données de replacement_value.If a literal NULL is provided as check_expression, returns the datatype of the 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.If a literal NULL is provided as check_expression and no replacement_value is provided, returns an int.

NotesRemarks

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.The value of check_expression is returned if it is not NULL; otherwise, replacement_value is returned after it is implicitly converted to the type of check_expression, if the types are different. replacement_value peut être tronqué si replacement_value dépasse check_expression.replacement_value can be truncated if replacement_value is longer than check_expression.

Notes

Utilisez COALESCE (Transact-SQL) pour renvoyer la première valeur non-NULL.Use COALESCE (Transact-SQL) to return the first non-null value.

ExemplesExamples

A.A. Utilisation de ISNULL avec AVGUsing ISNULL with AVG

L'exemple suivant recherche la moyenne du poids de tous les produits.The following example finds the average of the weight of all products. La valeur 50 se substitue à toutes les entrées NULL de la colonne Weight de la table Product.It substitutes the value 50 for all NULL entries in the Weight column of the Product table.

USE AdventureWorks2012;  
GO  
SELECT AVG(ISNULL(Weight, 50))  
FROM Production.Product;  
GO  

Voici l'ensemble des résultats.Here is the result set.

-------------------------- 
59.79  
 
(1 row(s) affected)

B.B. Utilisation de ISNULLUsing 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 AdventureWorks2012.The following example selects the description, discount percentage, minimum quantity, and maximum quantity for all special offers in AdventureWorks2012. 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.If the maximum quantity for a particular special offer is NULL, the MaxQty shown in the result set is 0.00.

USE AdventureWorks2012;  
GO  
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'  
FROM Sales.SpecialOffer;  
GO  

Voici l'ensemble des résultats.Here is the result set.

DescriptionDescription DiscountPctDiscountPct MinQtyMinQty Quantité maximaleMax Quantity
No DiscountNo Discount 0.000.00 00 00
Volume DiscountVolume Discount 0,020.02 1111 1414
Volume DiscountVolume Discount 0.050.05 1515 44
Volume DiscountVolume Discount 0,100.10 2525 00
Volume DiscountVolume Discount (0.15%)0.15 4141 00
Volume DiscountVolume Discount 0,200.20 6161 00
Mountain-100 ClMountain-100 Cl 0,350.35 00 00
Sport Helmet DiSport Helmet Di 0,100.10 00 00
Road-650 OverstRoad-650 Overst 0,300.30 00 00
Mountain Tire SMountain Tire S 0.500.50 00 00
Sport Helmet DiSport Helmet Di (0.15%)0.15 00 00
LL Road Frame SLL Road Frame S 0,350.35 00 00
Touring-3000 PrTouring-3000 Pr (0.15%)0.15 00 00
Touring-1000 PrTouring-1000 Pr 0,200.20 00 00
Half-Price PedaHalf-Price Peda 0.500.50 00 00
Mountain-500 SiMountain-500 Si 0,400.40 00 00

(16 row(s) affected)

C.C. Test de valeur NULL dans une clause WHERETesting for NULL in a WHERE clause

N'utilisez pas ISNULL pour rechercher des valeurs NULL.Do not use ISNULL to find NULL values. Utilisez IS NULL à la place.Use IS NULL instead. L'exemple suivant recherche tous les produits qui comportent NULL dans la colonne weight.The following example finds all products that have NULL in the weight column. Notez l'espace entre IS et NULL.Note the space between IS and NULL.

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

Exemples : Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW) et Parallel Data WarehouseParallel Data WarehouseExamples: Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW) and Parallel Data WarehouseParallel Data Warehouse

D.D. Utilisation de ISNULL avec AVGUsing ISNULL with AVG

L’exemple suivant recherche la moyenne du poids de tous les produits dans un exemple de table.The following example finds the average of the weight of all products in a sample table. La valeur 50 se substitue à toutes les entrées NULL de la colonne Weight de la table Product.It substitutes the value 50 for all NULL entries in the Weight column of the Product table.

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

Voici l'ensemble des résultats.Here is the result set.

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

E.E. Utilisation de ISNULLUsing ISNULL

L’exemple suivant utilise ISNULL pour tester les valeurs NULL dans la colonne MinPaymentAmount et afficher la valeur 0.00 pour les lignes.The following example uses ISNULL to test for NULL values in the column MinPaymentAmount and display the value 0.00 for those rows.

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

Voici un jeu de résultats partiel.Here is a partial result set.

ResellerNameResellerName MinimumPaymentMinimumPayment
A Bicycle AssociationA Bicycle Association 0,00000.0000
A Bike StoreA Bike Store 0,00000.0000
A Cycle ShopA Cycle Shop 0,00000.0000
A Great Bicycle CompanyA Great Bicycle Company 0,00000.0000
A Typical Bike ShopA Typical Bike Shop 200,0000200.0000
Acceptable Sales & ServiceAcceptable Sales & Service 0,00000.0000

F.F. Utilisation de la fonction IS NULL pour tester les valeurs NULL dans une clause WHEREUsing IS NULL to test for NULL in a WHERE clause

L’exemple suivant recherche tous les produits qui comportent NULL dans la colonne Weight.The following example finds all products that have NULL in the Weight column. Notez l'espace entre IS et NULL.Note the space between IS and NULL.

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

Voir aussiSee Also

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