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.

Dica

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)
sql

ISNULL:

ISNULL(Valor1, Valor2)
sql

IFNULL:

IFNULL(Valor1, Valor2)
sql

Essas 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”.
Dica

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.

vServer (VPS) da IONOS

Hospedagem VPS poderosa e de baixo custo para rodar suas aplicações sob medida, com assistente pessoal e suporte 24 horas.

  • Armazenamento 100% SSD
  • Pronto em 55 segundos
  • Certificado SSL

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 clientes
sql

Exemplo de SQL ISNULL

SELECT Endereço, Idade, ClienteID, ISNULL(Endereço, 'Sem Informação')
FROM clientes
sql

Exemplo de SQL IFNULL

SELECT Endereço, Idade, ClienteID, IFNULL(Endereço, 'Sem Informação')
FROM clientes
sql

Alternativas à 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
Este artigo foi útil?
Para melhorar a sua experiência, este site usa cookies. Ao acessar o nosso site, você concorda com nosso uso de cookies. Mais informações
Page top