IFNULL no SQL Server: ISNULL

A ocorrência de valores nulos em banco de dados é algo normal, porém, o tratamento do retorno destes `valores` é algo muito importante. O padrão SQL ANSI  nos disponibiliza para este tratamento a função Coalesce, que é encontrada na maiores dos bancos de dados existentes, porém, normalmente cada empresa proprietária de SGBD’s implementa suas próprias funções, como é o caso da Microsoft, com o uso do ISNULL, da Oracle, com o NVL e etc.

Já abordei aqui no blog como trabalhar com valores nulos no PostgreSQL:

No SQL Server, como pontuei acima temos o ISNULL, vamos conhecer sua syntax:

“ISNULL ( check_expression , replacement_value )”

Diferente do Coalesce, o ISNULL aceita somente dois parâmetros, o parâmetro a ser averiguado se é nulo e, o valor que será retornado caso o primeiro parâmetro seja realmente nulo. Outro diferencial é que, o ISNULL retorna tipo de dados diferente do parâmetro de checagem, desde que estes sejam “implicitamente conversíveis”, vejamos um exemplo prático com nossa conhecida tabela produto:

Tabela: produto:

 select  id_produto, nome, isnull(qtd,0)  
 from produto ;  

ID_PRODUTO  NOME           COLUMN_2
———-         ———          ——–
1                    Produto A     10
2                    Produto B      0
3                    Produto C     30

Como a quantidade do produto 2 era nula, o valor foi substituído por 0 (Zero). Este tratamento é importantíssimo no uso de cálculos, pois, ao se somar registros que possuam valores nulos, o resultado será nulo, cuidado!

Mas afinal, qual usar, ISNULL ou Coalesce? Há quem diga que o ISNULL mais rápido que o Coalesce, mas há contradições e, os resultados não são expressivos, então, a escolha é sua!

Um grande abraço.

2 comentários em “IFNULL no SQL Server: ISNULL”

  1. Gostei da dica…
    Queria aproveitar o blog e pedir uma dica…
    Estou querendo fazer um curso de SQL e me indicaram o curso de SQL da Impacta…
    Alguém conhece? sabe se é bom?
    Curso SQL
    Abraço

    Responder
  2. Olá amigo(a),

    Infelizmente não posso responder com exatidão pois, nunca realizei nenhum curso com a empresa, mas, observando as discussões que localizei pela web, uns relatam histórias de amor, outros de ódio.

    Mas uma coisa é unânime, sempre onde questionado sobre a qualidade dos cursos, a Caelum sempre é citada como empresa concorrente em qualidade.

    Grande abraço.

    Responder

Deixe um comentário