Compartilhar via


ISNULL (Transact-SQL)

Substitui NULL pelo valor de substituição especificado.

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

ISNULL ( check_expression , replacement_value )

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 de dados implicitamente conversível no tipo de check_expresssion.

Tipos de retorno

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

Comentários

O valor da check_expression será retornado se não for NULL; caso contrário, replacement_value será retornado após ser implicitamente convertido no tipo da check_expression, se os tipos forem diferentes. replacement_value poderá ser truncado se replacement_value for mais longo que check_expression.

ObservaçãoObservaçã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 AdventureWorks2012;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO

Aqui está 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 AdventureWorks2012. Se a quantidade máxima de uma oferta especial específica for NULL, a MaxQty mostrada no conjunto de resultados será 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.

Description       DiscountPct       MinQty      Max Quantity

---------------   -------------     --------    ---------------

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 AdventureWorks2012;
GO
SELECT Name, Weight
FROM Production.Product
WHERE Weight IS NULL;
GO

Consulte também

Referência

Expressões (Transact-SQL)

IS [NOT] NULL (Transact-SQL)

Funções de sistema (Transact-SQL)

WHERE (Transact-SQL)

COALESCE (Transact-SQL)