SQL ISNULL(): Como verificar e substituir valores NULL
A função SQL ISNULL() é utilizada para verificar se uma expressão tem o valor NULL. Se esse for o caso, a função substitui o NULL por um valor de substituição do mesmo tipo de dado.
O que é a função SQL ISNULL()?
Em SQL (Structured Query Language), você pode criar tabelas e preenchê-las com valores. Quando você omite atribuir um valor a um campo dentro da tabela, esse campo permanece vazio, recebendo o valor NULL, que indica que não há um valor real presente. Se você deseja garantir que um valor de substituição seja considerado em vez de NULL, a linguagem oferece a função SQL ISNULL(). Essa função verifica primeiramente se uma expressão é NULL. Se for o caso, ela avalia uma expressão de substituição definida. Caso contrário, o valor original é considerado.
Hospedagem VPS poderosa e de baixo custo para rodar suas aplicações sob medida, com assistente pessoal e suporte 24 horas.
- Save 50% or more vs leading hosts
- Unlimited traffic & no setup fees
- 99.99% uptime guaranteed
- Free 24/7 premium support
Sintaxe da função SQL ISNULL()
O funcionamento da função SQL ISNULL() fica claro quando analisamos a sintaxe:
ISNULL(expressão, valor_substituto);sqlA função primeiro verifica se o valor da expressão especificada é NULL. Se for o caso, o valor substituto é retornado. Caso contrário, a SQL ISNULL() usa a expressão original. É importante observar que “expressão” e “valor_substituto” devem ter o mesmo tipo de dado.
Funcionamento da função SQL ISNULL()
A função SQL ISNULL() é utilizada dentro de um comando SQL como SELECT. Nos exemplos a seguir, você verá primeiro a saída quando o valor da expressão é NULL e depois o outro caso possível. Este é o primeiro código:
SELECT ISNULL(NULL, 'Este é o valor substituto');sqlA saída seria:
Este é o valor substitutosqlNo próximo exemplo, a função é aplicada novamente, mas desta vez a expressão possui um valor e, portanto, retorna esse valor:
SELECT ISNULL('Este é o valor original', 'Este é o valor substituto');sqlA saída seria:
Este é o valor originalsqlPortanto, obtemos esta saída:
Este é o valor originalsqlExemplo prático de SQL ISNULL()
Para o próximo exemplo, criamos uma tabela simples chamada “Pedidos”. Esta tabela contém colunas para o número do cliente, o nome do cliente e um número de pedido:
| Número do Cliente | Nome | Número do Pedido |
|---|---|---|
| 1326 | Martins | 00451 |
| 1288 | Vieira | |
| 1262 | Martins | 00318 |
Se quisermos estruturar melhor nossa tabela, podemos usar a função SQL ISNULL() para substituir o valor NULL pelo marcador 00000. O código correspondente seria:
SELECT Número_do_Cliente,
ISNULL(Número_do_Pedido, '00000'), Número_do_Pedido
FROM Pedidos;sqlSe executarmos este código, obteremos a seguinte tabela:
| Número do Cliente | Nome | Número do Pedido |
|---|---|---|
| 1326 | Martins | 00451 |
| 1288 | Vieira | 00000 |
| 1262 | Martins | 00318 |
Combinar SQL ISNULL() com funções agregadas
SQL ISNULL() funciona também em combinação com funções de agregação como SQL AVG(), SQL COUNT() ou SUM(). Você pode aprender sobre essa interação com o exemplo a seguir. Vamos expandir a tabela acima e adicionar uma coluna para o valor do pedido em euros. A tabela agora é a seguinte:
| Número do Cliente | Nome | Número do Pedido | Valor do Pedido |
|---|---|---|---|
| 1326 | Martins | 00451 | 300 |
| 1288 | Vieira | 00000 | NULL |
| 1262 | Martins | 00318 | 100 |
Se quisermos substituir o valor NULL por 100 e calcular o valor total de todos os pedidos, usamos a função SUM(). O código é o seguinte:
SELECT SUM(ISNULL(Valor_do_Pedido, 100))
FROM Pedidos;sqlA saída será:
500sqlO sistema substitui o valor NULL por 100 e adiciona assim 300 + 100 + 100.
Alternativas à função SQL ISNULL()
Existem outras opções semelhantes à SQL ISNULL() que são classificadas como funções NULL. Incluem SQL COALESCE(), SQL IFNULL() e SQL NVL(). Elas também verificam se um valor é NULL e podem substituí-lo por um valor de substituição.
Escolha o servidor adequado para suas necessidades! Com o SQL Server Hosting da IONOS, você não só tem a opção de escolher entre MSSQL, MySQL e MariaDB, como também se beneficia de consultoria personalizada, fortes recursos de segurança e desempenho de primeira linha.

