ISNULL (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de SQL no Microsoft FabricWarehouse no Microsoft Fabric

Substitui NULL pelo valor de substituição especificado.

Convenções de sintaxe de Transact-SQL

Sintaxe

ISNULL ( check_expression , replacement_value )  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

check_expression
É a expressão a ser verificada para NULL. check_expression pode ser de qualquer tipo.

replacement_value
É a expressão a ser retornada se check_expression for NULL. replacement_value deve ser de um tipo que seja implicitamente convertido no tipo check_expression.

Tipos de retorno

Retorna o mesmo tipo que check_expression. Se um NULL literal for fornecido como check_expression, retornará o tipo de dados de replacement_value. Se um NULL literal for fornecido como check_expression e nenhum replacement_value for fornecido, retornará um int.

Comentários

O valor de check_expression será retornado se não for NULL, caso contrário, replacement_value será retornado depois de ser convertido implicitamente no tipo de check_expression, se os tipos forem diferentes. replacement_value poderá ser truncado se replacement_value for maior do que check_expression.

Observação

Use COALESCE (Transact-SQL) para retornar o primeiro valor não nulo.

Exemplos

a. Usando ISNULL com AVG

O exemplo a seguir localiza a média do peso de todos os produtos. Substitui o valor 50 para todas as entradas NULL na coluna Weight da tabela Product.

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

Este é o conjunto de resultados.

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

B. Usando ISNULL

O exemplo a seguir seleciona a descrição, o percentual de desconto, a quantidade mínima e a quantidade máxima para todas as ofertas especiais em AdventureWorks2022. Se a quantidade máxima de uma oferta especial específica for NULL, a MaxQty mostrada no conjunto de resultados será 0.00.

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

Este é o conjunto de resultados.

DESCRIÇÃO DiscountPct MinQty Quantidade Máx.
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. Testando NULL em uma cláusula WHERE

Não use ISNULL para localizar valores NULL. Em vez disso, use IS NULL. O exemplo a seguir localiza todos os produtos que têm NULL na coluna de peso. Observe o espaço entre IS e NULL.

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

Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)

D. Usando ISNULL com AVG

O exemplo a seguir localiza a média do peso de todos os produtos em uma tabela de amostra. Substitui o valor 50 para todas as entradas NULL na coluna Weight da tabela Product.

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

Este é o conjunto de resultados.

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

E. Usando ISNULL

O exemplo a seguir usa ISNULL para testar valores NULL na coluna MinPaymentAmount e exibir o valor 0.00 para essas linhas.

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

Este é um conjunto de resultados parcial.

ResellerName MinimumPayment
Uma Associação de Bicicletas 0,0000
Uma Loja de Bicicletas 0,0000
Uma Loja de Bike 0,0000
Uma Ótima Empresa de Bicicleta 0,0000
Uma Loja de Bicicletas Típica 200,0000
Vendas e Serviço Aceitáveis 0,0000

F. Usando IS NULL para testar NULL em uma cláusula WHERE

O exemplo a seguir localiza todos os produtos que têm NULL na coluna Weight. Observe o espaço entre IS e NULL.

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

Consulte Também

Expressões (Transact-SQL)
IS NULL (Transact-SQL)
Funções de sistema (Transact-SQL)
WHERE (Transact-SQL)
COALESCE (Transact-SQL)