ISNULL (Transact-SQL)
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
PDW (Analytics Platform System)
Ponto de extremidade de SQL no Microsoft Fabric
Warehouse no Microsoft Fabric
Substitui NULL pelo valor de substituição especificado.
Convenções de sintaxe de Transact-SQL
Syntax
ISNULL ( check_expression , replacement_value )
Observação
Para ver a sintaxe do Transact-SQL para o SQL Server 2014 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 & 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)