ISNULL (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in Microsoft Fabric
Remplace par NULL
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 à rechercher NULL
. check_expression peut être de n’importe quel type.
replacement_value
Expression à renvoyer si check_expression est 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 un littéral NULL
est fourni en tant que check_expression, ISNULL
retourne le type de données du replacement_value. Si un littéral NULL
est fourni en tant que check_expression et qu’aucun replacement_value n’est fourni, ISNULL
retourne un int.
Notes
La valeur de check_expression est retournée si ce n’est pas le cas NULL
. Sinon, replacement_value est retournée une fois qu’elle est implicitement convertie en type de check_expression, si les types sont différents. replacement_value peut être tronqué si replacement_value dépasse check_expression.
Remarque
Utilisez COALESCE pour retourner la première valeur non null.
Exemples
Les exemples de code Transact-SQL de cet article sont fondés sur l’échantillon de base de données AdventureWorks2022
ou AdventureWorksDW2022
fourni, que vous pouvez télécharger à partir de la page d’accueil Échantillons et projets communautaires Microsoft SQL Server.
A. Utiliser ISNULL avec AVG
L'exemple suivant recherche la moyenne du poids de tous les produits. Elle remplace la valeur 50
de toutes les NULL
entrées de la Weight
colonne de la Product
table.
USE AdventureWorks2022;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
Voici le jeu de résultats obtenu.
59.79
B. Utiliser 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 pour une offre spéciale particulière est NULL
, l’affichage MaxQty
dans le jeu de résultats est 0.00
.
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 11 to 14 |
0,02 | 11 | 14 |
Volume Discount 15 to 24 |
0.05 | 15 | 24 |
Volume Discount 25 to 40 |
0.10 | 25 | 40 |
Volume Discount 41 to 60 |
0.15 | 41 | 60 |
Volume Discount over 60 |
0.20 | 61 | 0 |
Mountain-100 Clearance Sale |
0,35 | 0 | 0 |
Sport Helmet Discount-2002 |
0.10 | 0 | 0 |
Road-650 Overstock |
0.30 | 0 | 0 |
Mountain Tire Sale |
0.50 | 0 | 0 |
Sport Helmet Discount-2003 |
0.15 | 0 | 0 |
LL Road Frame Sale |
0,35 | 0 | 0 |
Touring-3000 Promotion |
0.15 | 0 | 0 |
Touring-1000 Promotion |
0.20 | 0 | 0 |
Half-Price Pedal Sale |
0.50 | 0 | 0 |
Mountain-500 Silver Clearance Sale |
0,40 | 0 | 0 |
L’exemple suivant utilise ISNULL
pour remplacer une NULL
valeur pour Color
, par la chaîne None
.
USE AdventureWorks2022;
GO
SELECT ProductID,
Name,
ProductNumber,
ISNULL(Color, 'None') AS Color
FROM Production.Product;
Voici un jeu de résultats partiel.
ProductID | Nom | RéférenceProduit | Couleur |
---|---|---|---|
1 | Adjustable Race |
AR-5381 | Aucune |
2 | Bearing Ball |
BA-8327 | Aucune |
3 | BB Ball Bearing |
BE-2349 | Aucune |
4 | Headset Ball Bearings |
BE-2908 | Aucune |
316 | Blade |
BL-2036 | Aucune |
317 | LL Crankarm |
CA-5965 | Noir |
318 | ML Crankarm |
CA-6738 | Noir |
319 | HL Crankarm |
CA-7457 | Noir |
C. Tester dans NULL
une clause WHERE
N’utilisez ISNULL
pas pour rechercher NULL
des valeurs. 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. Utiliser ISNULL avec AVG
L’exemple suivant recherche la moyenne du poids de tous les produits dans un exemple de table. Elle remplace la valeur 50
de toutes les NULL
entrées de la Weight
colonne de la Product
table.
-- Uses AdventureWorksDW
SELECT AVG(ISNULL(Weight, 50))
FROM dbo.DimProduct;
Voici le jeu de résultats obtenu.
52.88
E. Utiliser ISNULL
L’exemple suivant utilise ISNULL
pour tester les NULL
valeurs dans la colonne MinPaymentAmount
et afficher la valeur 0.00
de ces 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. Utiliser IS NULL pour tester 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 AdventureWorksDW
SELECT EnglishProductName, Weight
FROM dbo.DimProduct
WHERE Weight IS NULL;