ISNULL (Transact-SQL)ISNULL (Transact-SQL)

ESTE TÓPICO APLICA-SE A: simSQL Server (a partir de 2008)simBanco de Dados SQL do Microsoft AzuresimAzure SQL Data Warehouse simParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Substitui NULL pelo valor de substituição especificado.Replaces NULL with the specified replacement value.

Ícone de link do tópico Convenções da sintaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

ISNULL ( check_expression , replacement_value )  

ArgumentosArguments

check_expressioncheck_expression
É o expressão a ser verificada para NULL.Is the expression to be checked for NULL. check_expression pode ser de qualquer tipo.check_expression can be of any type.

replacement_valuereplacement_value
A expressão a ser retornada se check_expression é NULL.Is the expression to be returned if check_expression is NULL. replacement_value deve ser de um tipo que é implicitamente conversível para o tipo de check_expresssion.replacement_value must be of a type that is implicitly convertible to the type of check_expresssion.

Tipos de retornoReturn Types

Retorna o mesmo tipo check_expression.Returns the same type as check_expression. Se um NULL literal for fornecido como check_expression, retorna o tipo de dados de replacement_value.If a literal NULL is provided as check_expression, returns the datatype of the replacement_value. Se um NULL literal for fornecido como check_expression e não replacement_value for fornecido, retornará uma int.If a literal NULL is provided as check_expression and no replacement_value is provided, returns an int.

ComentáriosRemarks

O valor de check_expression será retornado se não for NULL; caso contrário, replacement_value é retornado depois que ele é convertido implicitamente no tipo de check_expression, se os tipos são diferentes.The value of check_expression is returned if it is not NULL; otherwise, replacement_value is returned after it is implicitly converted to the type of check_expression, if the types are different. replacement_value pode ser truncada se replacement_value é maior do que check_expression.replacement_value can be truncated if replacement_value is longer than check_expression.

Observação

Use ADESÃO ( Transact-SQL ) para retornar o primeiro valor não nulo.Use COALESCE (Transact-SQL) to return the first non-null value.

ExemplosExamples

A.A. Usando ISNULL com AVGUsing ISNULL with AVG

O exemplo a seguir localiza a média do peso de todos os produtos.The following example finds the average of the weight of all products. Substitui o valor 50 para todas as entradas NULL na coluna Weight da tabela Product.It substitutes the value 50 for all NULL entries in the Weight column of the Product table.

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

Aqui está o conjunto de resultados.Here is the result set.

-------------------------- 
59.79  

(1 row(s) affected)

B.B. Usando ISNULLUsing 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 AdventureWorks2012.The following example selects the description, discount percentage, minimum quantity, and maximum quantity for all special offers in AdventureWorks2012. Se a quantidade máxima de uma oferta especial específica for NULL, a MaxQty mostrada no conjunto de resultados será 0.00.If the maximum quantity for a particular special offer is NULL, the MaxQty shown in the result set is 0.00.

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

Aqui está o conjunto de resultados.Here is the result set.

DescriptionDescription DiscountPctDiscountPct MinQtyMinQty Quantidade máximaMax Quantity
No DiscountNo Discount 0.000.00 00 00
Volume DiscountVolume Discount 0.020.02 1111 1414
Volume DiscountVolume Discount 0.050.05 1515 44
Volume DiscountVolume Discount 0.100.10 2525 00
Volume DiscountVolume Discount 0.150.15 4141 00
Volume DiscountVolume Discount 0.200.20 6161 00
Mountain-100 ClMountain-100 Cl 0.350.35 00 00
Injeção de dependência de Capacete SportSport Helmet Di 0.100.10 00 00
Road-650 OverstRoad-650 Overst 0.300.30 00 00
Pneu para Mountain Bike SMountain Tire S 0.500.50 00 00
Injeção de dependência de Capacete SportSport Helmet Di 0.150.15 00 00
Quadro de estrada LL SLL Road Frame S 0.350.35 00 00
Pr Touring-3000Touring-3000 Pr 0.150.15 00 00
Pr Touring-1000Touring-1000 Pr 0.200.20 00 00
Metade do preço PedaHalf-Price Peda 0.500.50 00 00
Si Mountain-500Mountain-500 Si 0.400.40 00 00

(16 row(s) affected)

C.C. Testando NULL em uma cláusula WHERETesting for NULL in a WHERE clause

Não use ISNULL para localizar valores NULL.Do not use ISNULL to find NULL values. Em vez disso, use IS NULL.Use IS NULL instead. O exemplo a seguir localiza todos os produtos que têm NULL na coluna de peso.The following example finds all products that have NULL in the weight column. Observe o espaço entre IS e NULL.Note the space between IS and NULL.

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

Exemplos: Azure SQL Data WarehouseAzure SQL Data Warehouse e Parallel Data WarehouseParallel Data WarehouseExamples: Azure SQL Data WarehouseAzure SQL Data Warehouse and Parallel Data WarehouseParallel Data Warehouse

D.D. Usando ISNULL com AVGUsing ISNULL with AVG

O exemplo a seguir encontra a média do peso de todos os produtos em uma tabela de exemplo.The following example finds the average of the weight of all products in a sample table. Substitui o valor 50 para todas as entradas NULL na coluna Weight da tabela Product.It substitutes the value 50 for all NULL entries in the Weight column of the Product table.

-- Uses AdventureWorks  

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

Aqui está o conjunto de resultados.Here is the result set.

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

E.E. Usando ISNULLUsing ISNULL

O exemplo a seguir usa ISNULL para testar valores NULL na coluna MinPaymentAmount e exibir o valor 0.00 para essas linhas.The following example uses ISNULL to test for NULL values in the column MinPaymentAmount and display the value 0.00 for those rows.

-- Uses AdventureWorks  

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

Este é um conjunto de resultados parcial.Here is a partial result set.

ResellerNameResellerName MinimumPaymentMinimumPayment
Uma associação de bicicletaA Bicycle Association 0.00000.0000
Um repositório de bicicletaA Bike Store 0.00000.0000
Uma fábrica de cicloA Cycle Shop 0.00000.0000
Uma empresa de bicicleta ótimoA Great Bicycle Company 0.00000.0000
Uma loja de bicicleta típicoA Typical Bike Shop 200.0000200.0000
Aceitável de vendas e de serviçoAcceptable Sales & Service 0.00000.0000

F.F. Usando IS NULL para testar o NULL em uma cláusula WHEREUsing IS NULL to test for NULL in a WHERE clause

O exemplo a seguir localiza todos os produtos que têm NULL no Weight coluna.The following example finds all products that have NULL in the Weight column. Observe o espaço entre IS e NULL.Note the space between IS and NULL.

-- Uses AdventureWorks  

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

Consulte tambémSee Also

Expressões ( Transact-SQL ) Expressions (Transact-SQL)
É NULL ( Transact-SQL ) IS NULL (Transact-SQL)
Funções de sistema (Transact-SQL) System Functions (Transact-SQL)
ONDE ( Transact-SQL ) WHERE (Transact-SQL)
União ( Transact-SQL )COALESCE (Transact-SQL)