Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Ponto de Extremidade de Análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de Dados SQL no Microsoft Fabric
Substitui NULL pelo valor de substituição especificado.
Transact-SQL convenções de sintaxe
Sintaxe
ISNULL ( check_expression , replacement_value )
Arguments
check_expression
A expressão a verificar para NULL.
check_expression pode ser de qualquer tipo.
replacement_value
A expressão a devolver se check_expression for NULL.
replacement_value deve ser de um tipo que seja implicitamente convertível para o tipo de check_expression.
Tipos de devolução
Devolve o mesmo tipo que check_expression. Se for fornecido um literal NULLcomo check_expression, ISNULL devolve o tipo de dado do replacement_value. Se um literal NULL for fornecido como check_expression e não for fornecido replacement_value , ISNULL retorna um int.
Observações
O valor de check_expression é devolvido se não NULLfor . Caso contrário, replacement_value é devolvido depois de ser implicitamente convertido para o tipo de check_expression, se os tipos forem diferentes.
replacement_value pode ser truncado se replacement_value for mais longo do que check_expression.
Observação
Use o COALESCE para devolver o primeiro valor não nulo.
Examples
Os exemplos de código neste artigo usam o banco de dados de exemplo AdventureWorks2025 ou AdventureWorksDW2025, que pode ser descarregado da página inicial de Exemplos e Projetos da Comunidade do Microsoft SQL Server.
A. Usar ISNULL com AVG
O exemplo seguinte encontra a média do peso de todos os produtos. Substitui o valor 50 para todas NULL as entradas na Weight coluna da Product tabela.
USE AdventureWorks2022;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
Aqui está o conjunto de resultados.
59.79
B. Usar ISNULL
O exemplo seguinte seleciona a descrição, percentagem de desconto, quantidade mínima e quantidade máxima para todas as ofertas especiais em AdventureWorks2025. Se a quantidade máxima para uma determinada oferta especial for NULL, a MaxQty mostrada no conjunto de resultados é 0.00.
USE AdventureWorks2022;
GO
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
FROM Sales.SpecialOffer;
GO
Aqui está o conjunto de resultados.
| Description | DiscountPct | MinQty | Quantidade máxima |
|---|---|---|---|
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 seguinte usa ISNULL para substituir um NULL valor para Color, pela cadeia None.
USE AdventureWorks2022;
GO
SELECT ProductID,
Name,
ProductNumber,
ISNULL(Color, 'None') AS Color
FROM Production.Product;
Aqui está um conjunto de resultados parciais.
| ID do Produto | Nome | Número do Produto | Cor |
|---|---|---|---|
| 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 | Black |
| 318 | ML Crankarm |
CA-6738 | Black |
| 319 | HL Crankarm |
CA-7457 | Black |
C. Teste para NULL numa cláusula WHERE
Não uses ISNULL para encontrar NULL valores. Utilize IS NULL em substituição. O exemplo seguinte encontra todos os produtos que têm NULL na coluna de peso. Note 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 and Analytics Platform System (PDW)
D. Usar ISNULL com AVG
O exemplo seguinte encontra a média do peso de todos os produtos numa tabela de exemplo. Substitui o valor 50 para todas NULL as entradas na Weight coluna da Product tabela.
-- Uses AdventureWorksDW
SELECT AVG(ISNULL(Weight, 50))
FROM dbo.DimProduct;
Aqui está o conjunto de resultados.
52.88
E. Usar ISNULL
O exemplo seguinte serve ISNULL para testar valores NULL na coluna MinPaymentAmount e mostrar o valor 0.00 dessas linhas.
-- Uses AdventureWorks
SELECT ResellerName,
ISNULL(MinPaymentAmount,0) AS MinimumPayment
FROM dbo.DimReseller
ORDER BY ResellerName;
Aqui está um conjunto de resultados parciais.
| Nome do Revendedor | Pagamento Mínimo |
|---|---|
| Uma Associação de Bicicletas | 0.0000 |
| Uma Loja de Bicicletas | 0.0000 |
| Uma Loja de Bicicletas | 0.0000 |
| Uma Grande Empresa de Bicicletas | 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 numa cláusula WHERE
O exemplo seguinte encontra todos os produtos que têm NULL na Weight coluna. Note o espaço entre IS e NULL.
-- Uses AdventureWorksDW
SELECT EnglishProductName, Weight
FROM dbo.DimProduct
WHERE Weight IS NULL;