ISNULL (Transact-SQL)
Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)SQL analytics endpoint in Microsoft FabricWarehouse in Microsoft Fabric
Sostituisce il valore NULL con il valore di sostituzione specificato.
Convenzioni di sintassi Transact-SQL
Sintassi
ISNULL ( check_expression , replacement_value )
Nota
Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.
Argomenti
check_expression
Espressione da verificare per determinare se è NULL. check_expression può essere di qualsiasi tipo.
replacement_value
Espressione da restituire se check_expression è NULL. replacement_value deve essere di un tipo convertibile in modo implicito nel tipo di check_expression.
Tipi restituiti
Restituisce lo stesso tipo di check_expression. Se come check_expression viene specificato un valore letterale NULL, restituisce il tipo di dati di replacement_value. Se come check_expression viene specificato un valore letterale NULL e non viene specificato alcun replacement_value, restituisce un valore int.
Osservazioni:
Il valore di check_expression viene restituito se non è NULL. Altrimenti viene restituito replacement_value dopo che è stato convertito in modo implicito nel tipo di check_expression, se i tipi sono diversi. È possibile che replacement_value venga troncato se la lunghezza di replacement_value è maggiore di quella di check_expression.
Nota
Usare COALESCE (Transact-SQL) per restituire il primo valore non NULL.
Esempi
R. Utilizzo di ISNULL con AVG
Nell'esempio seguente viene calcolato il valore medio del peso di tutti i prodotti. Viene inoltre sostituito il valore 50
per tutte le voci NULL nella colonna Weight
della tabella Product
.
USE AdventureWorks2022;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
Questo è il set di risultati.
--------------------------
59.79
(1 row(s) affected)
B. Utilizzo di ISNULL
Nell'esempio seguente vengono selezionate la descrizione, la percentuale di sconto, la quantità minima e la quantità massima per tutte le offerte speciali in AdventureWorks2022
. Se la quantità massima per una determinata offerta speciale è NULL, il valore di MaxQty
visualizzato nel set di risultati è 0.00
.
USE AdventureWorks2022;
GO
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
FROM Sales.SpecialOffer;
GO
Questo è il set di risultati.
Descrizione | 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. Verifica dei valori NULL in una clausola WHERE
Per trovare i valori NULL, non utilizzare ISNULL, bensì IS NULL. Nell'esempio seguente vengono trovati tutti i prodotti con valore NULL
nella colonna relativa al peso. Si noti lo spazio tra IS
e NULL
.
USE AdventureWorks2022;
GO
SELECT Name, Weight
FROM Production.Product
WHERE Weight IS NULL;
GO
Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)
D. Utilizzo di ISNULL con AVG
Nell'esempio seguente viene calcolato il valore medio del peso di tutti i prodotti in una tabella di esempio. Viene inoltre sostituito il valore 50
per tutte le voci NULL nella colonna Weight
della tabella Product
.
-- Uses AdventureWorks
SELECT AVG(ISNULL(Weight, 50))
FROM dbo.DimProduct;
Questo è il set di risultati.
--------------------------
52.88
E. Utilizzo di ISNULL
Nell'esempio seguente viene usato ISNULL per verificare i valori NULL nella colonna MinPaymentAmount
e visualizzare il valore 0.00
per le righe.
-- Uses AdventureWorks
SELECT ResellerName,
ISNULL(MinPaymentAmount,0) AS MinimumPayment
FROM dbo.DimReseller
ORDER BY ResellerName;
Set di risultati parziale:
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. Uso di IS NULL per verificare i valori NULL in una clausola WHERE
Nell'esempio seguente vengono trovati tutti i prodotti con valore NULL
nella colonna Weight
. Si noti lo spazio tra IS
e NULL
.
-- Uses AdventureWorks
SELECT EnglishProductName, Weight
FROM dbo.DimProduct
WHERE Weight IS NULL;
Vedi anche
Espressioni (Transact-SQL)
IS NULL (Transact-SQL)
Funzioni di sistema (Transact-SQL)
WHERE (Transact-SQL)
COALESCE (Transact-SQL)
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per