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.
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
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.