Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Ponto de extremidade de análise de SQL no Microsoft Fabric
Depósito no Microsoft Fabric
Banco de dados SQL no Microsoft Fabric
Substitui NULL pelo valor de substituição especificado.
Convenções de sintaxe de Transact-SQL
Sintaxe
ISNULL ( check_expression , replacement_value )
Argumentos
check_expression
A expressão a ser verificada .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 literal NULL for fornecido como check_expression, ISNULL retornará o tipo de dados do replacement_value. Se um literal NULL for fornecido como check_expression e nenhum replacement_value for fornecido, ISNULL retornará um int.
Comentários
O valor de check_expression será retornado se não NULLfor . Caso contrário, replacement_value será retornado depois de ser convertido implicitamente para o 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 para retornar o primeiro valor não nulo.
Exemplos
Os exemplos de código neste artigo usam o banco de dados de exemplo AdventureWorks2025 ou AdventureWorksDW2025, que você pode baixar na página inicial Microsoft SQL Server Samples and Community Projects.
R. Usar ISNULL com o AVG
O exemplo a seguir localiza a média do peso de todos os produtos. Ele substitui o valor 50 de todas as NULLWeight entradas na coluna da Product tabela.
USE AdventureWorks2022;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
Veja a seguir o conjunto de resultados.
59.79
B. Usar 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 AdventureWorks2025. Se a quantidade máxima para uma oferta especial específica for NULL, o MaxQty mostrado no conjunto de resultados é 0.00.
USE AdventureWorks2022;
GO
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
FROM Sales.SpecialOffer;
GO
Veja a seguir o conjunto de resultados.
| Descrição | DiscountPct | MinQty | Quantidade Máx. |
|---|---|---|---|
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 |
O exemplo a seguir usa ISNULL para substituir um NULL valor para Color, pela string None.
USE AdventureWorks2022;
GO
SELECT ProductID,
Name,
ProductNumber,
ISNULL(Color, 'None') AS Color
FROM Production.Product;
Este é um conjunto de resultados parcial.
| ProductID | Nome | ProductNumber | Color |
|---|---|---|---|
| 1 | Adjustable Race |
AR-5381 | Nenhum |
| 2 | Bearing Ball |
BA-8327 | Nenhum |
| 3 | BB Ball Bearing |
BE-2349 | Nenhum |
| 4 | Headset Ball Bearings |
BE-2908 | Nenhum |
| 316 | Blade |
BL-2036 | Nenhum |
| 317 | LL Crankarm |
CA-5965 | Preto |
| 318 | ML Crankarm |
CA-6738 | Preto |
| 319 | HL Crankarm |
CA-7457 | Preto |
C. Teste para NULL em uma cláusula WHERE
Não use ISNULL para encontrar NULL valores. Use o IS NULL em vez disso. 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. Usar ISNULL com o AVG
O exemplo a seguir localiza a média do peso de todos os produtos em uma tabela de amostra. Ele substitui o valor 50 de todas as NULLWeight entradas na coluna da Product tabela.
-- Uses AdventureWorksDW
SELECT AVG(ISNULL(Weight, 50))
FROM dbo.DimProduct;
Veja a seguir o conjunto de resultados.
52.88
E. Usar ISNULL
O exemplo a seguir usa ISNULL para testar NULL valores na coluna MinPaymentAmount e exibir o valor 0.00 dessas 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. Use 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 AdventureWorksDW
SELECT EnglishProductName, Weight
FROM dbo.DimProduct
WHERE Weight IS NULL;