Função SQL `NVL`: Como substituir valores NULL
A função SQL NVL, que significa Null Value (valor nulo), é usada para substituir valores NULL, em conjuntos e bancos de dados, por valores mais significativos. Ao fazer isso, você otimiza os seus bancos de dados, melhora a legibilidade de análises e relatórios, e aprimora o desempenho de consultas de busca.
O que é a função SQL NVL?
Administradores que trabalham regularmente com bancos de dados e que precisam de conjuntos de dados completos para realizar análises conhecem bem o problema desencadeado por valores NULL. Dados ausentes e lacunas podem levar a resultados distorcidos, imprecisões e relatórios inúteis. A solução para valores NULL é a função SQL NVL (Null-Value Logic), que ajuda a substituir colunas e campos vazios por valores ou cadeias de caracteres mais adequados e personalizados. Isso melhora a qualidade e a utilidade dos dados, aumentando assim a eficácia e o desempenho dos bancos de dados.
Como funciona a função SQL NVL?
O funcionamento da SQL NVL é simples: com ela, você define o valor que deseja usar para substituir valores NULL nos resultados desejados. A função verifica os conjuntos de dados selecionados para identificar valores verdadeiros ou falsos e substitui automaticamente os valores NULL encontrados pelas informações desejadas. Valores NULL, em linhas e colunas, geralmente representam dados ausentes. Eles não devem ser confundidos com o valor numérico “0” ou com espaços em branco.
Atenção: A SQL NVL é principalmente utilizada em bancos de dados ORACLE. No MySQL ou no SQL Server, NVL foi substituída pela função ISNULL. Se você deseja substituir valores NULL em bancos de dados no SQL Server e no MS ACCES, use a função ISNULL. No MySQL, utilize a função IFNULL ou COALESCE. O funcionamento de todas elas é idêntico.
Conheça os fundamentos mais importantes e as possíveis aplicações da linguagem de programação de banco de dados SQL, uma das mais usadas do mundo. Nossa introdução ao SQL com exemplos ajuda você a começar a utilizar SQL em códigos.
Diferenças entre SQL NVL, ISNULL e IFNULL
Dependendo do tipo de banco de dados, você pode se confundir com as funções SQL NVL, ISNULL e IFNULL. As três são muito semelhantes, mas não são suportadas por todos os bancos de dados e sistemas de gerenciamento de banco de dados. Nosso resumo ajuda você a escolher a função correta para substituir valores NULL.
Sintaxe e parâmetros
As funções SQL NVL, ISNULL e IFNULL exigem dois parâmetros, que chamaremos aqui de “Valor1” e “Valor2”:
- Valor1: Define o conjunto de dados ou a coluna onde valores NULL devem ser substituídos.
- Valor2: Define o valor pelo qual você deseja substituir valores NULL nos resultados. Aqui, você pode inserir valores como “Sem Informação”, “0” ou “Desconhecido” para preencher lacunas e espaços vazios. Observe, a seguir, a sintaxe de cada uma das três funções.
NVL:
NVL(Valor1, Valor2)sqlISNULL:
ISNULL(Valor1, Valor2)sqlIFNULL:
IFNULL(Valor1, Valor2)sqlEssas funções são normalmente usadas em conjunto com SQL SELECT e FROM, que permitem definir os conjuntos de dados a serem verificados.
Tabela comparativa entre SQL NVL, ISNULL e IFNULL
Assim se diferenciam as funções, muito semelhantes, para a substituição de valores NULL:
| Função SQL | Tratamento de valores NULL | Compatibilidade |
|---|---|---|
SQL NVL
|
Substitui valores NULL encontrados por um valor desejado | Oracle, Db2 |
SQL ISNULL
|
Substitui valores NULL ou cadeias de caracteres vazias por um valor desejado | SQL Server, MySQL, MS ACCESS |
SQL IFNULL
|
Substitui valores NULL por um valor desejado; não considera espaços em branco como valores NULL | MySQL, Google BigQuery |
Para quais aplicações a SQL NVL é indicada?
A substituição de valores NULL é útil em várias situações, entre elas:
- Substituir dados de clientes ou endereços de entrega ausentes por valores legíveis, como “desconhecido”.
- Substituir saldos ou transações desconhecidas pelo valor numérico 0.
- Substituir valores vazios em dados de pacientes, financeiros ou de produção por valores padrão e médios.
- Substituir avaliações ou feedbacks ausentes por “Sem informação”.
- Trocar imagens ou informações ausentes por “Imagem não disponível” ou “Informações não disponíveis”.
Você quer poder gerenciar dados de forma eficiente, com desempenho confiável, escalabilidade e segurança contra falhas? O SQL Server Hosting da IONOS oferece servidores de hospedagem personalizaveis, com todas essas vantagens.
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
Exemplos práticos da função SQL NVL
Para ilustrar o uso das funções SQL NVL, ISNULL e IFNULL, elaboramos o seguinte exemplo: uma tabela de clientes com colunas de endereço, idade e ID do cliente. Queremos substituir possíveis valores NULL na coluna “Endereço” pelo valor “Sem Informação”.
Exemplo de SQL NVL
SELECT Endereço, Idade, ClienteID, NVL(Endereço, 'Sem Informação')
FROM clientessqlExemplo de SQL ISNULL
SELECT Endereço, Idade, ClienteID, ISNULL(Endereço, 'Sem Informação')
FROM clientessqlExemplo de SQL IFNULL
SELECT Endereço, Idade, ClienteID, IFNULL(Endereço, 'Sem Informação')
FROM clientessqlAlternativas à função SQL NVL
As funções SQL NVL, ISNULL e IFNULL são quase idênticas. No entanto, é importante qual delas é suportada pelo seu banco de dados. Outra alternativa muito semelhante a comandos SQL, operadores SQL e funções SQL é SQL COALESCE. COALESCE é suportada por quase todas as aplicações de banco de dados e também permite substituir valores NULL por um valor substituto.
A sintaxe também é idêntica:
COALESCE(Valor1, Valor2)sql
