A função SQL NVL, que significa Null Value (valor nulo), é usada para subs­ti­tuir valores NULL, em conjuntos e bancos de dados, por valores mais sig­ni­fi­ca­ti­vos. Ao fazer isso, você otimiza os seus bancos de dados, melhora a le­gi­bi­li­dade de análises e re­la­tó­rios, e aprimora o de­sem­pe­nho de consultas de busca.

O que é a função SQL NVL?

Ad­mi­nis­tra­do­res que trabalham re­gu­lar­mente com bancos de dados e que precisam de conjuntos de dados completos para realizar análises conhecem bem o problema de­sen­ca­de­ado por valores NULL. Dados ausentes e lacunas podem levar a re­sul­ta­dos dis­tor­ci­dos, im­pre­ci­sões e re­la­tó­rios inúteis. A solução para valores NULL é a função SQL NVL (Null-Value Logic), que ajuda a subs­ti­tuir colunas e campos vazios por valores ou cadeias de ca­rac­te­res mais adequados e per­so­na­li­za­dos. Isso melhora a qualidade e a utilidade dos dados, au­men­tando assim a eficácia e o de­sem­pe­nho dos bancos de dados.

Como funciona a função SQL NVL?

O fun­ci­o­na­mento da SQL NVL é simples: com ela, você define o valor que deseja usar para subs­ti­tuir valores NULL nos re­sul­ta­dos desejados. A função verifica os conjuntos de dados se­le­ci­o­na­dos para iden­ti­fi­car valores ver­da­dei­ros ou falsos e substitui au­to­ma­ti­ca­mente os valores NULL en­con­tra­dos pelas in­for­ma­ções desejadas. Valores NULL, em linhas e colunas, ge­ral­mente re­pre­sen­tam dados ausentes. Eles não devem ser con­fun­di­dos com o valor numérico “0” ou com espaços em branco.

Atenção: A SQL NVL é prin­ci­pal­mente utilizada em bancos de dados ORACLE. No MySQL ou no SQL Server, NVL foi subs­ti­tuída pela função ISNULL. Se você deseja subs­ti­tuir 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 fun­ci­o­na­mento de todas elas é idêntico.

Dica

Conheça os fun­da­men­tos mais im­por­tan­tes e as possíveis apli­ca­ções da linguagem de pro­gra­ma­ção de banco de dados SQL, uma das mais usadas do mundo. Nossa in­tro­du­ção ao SQL com exemplos ajuda você a começar a utilizar SQL em códigos.

Di­fe­ren­ças entre SQL NVL, ISNULL e IFNULL

De­pen­dendo 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 se­me­lhan­tes, mas não são su­por­ta­das por todos os bancos de dados e sistemas de ge­ren­ci­a­mento de banco de dados. Nosso resumo ajuda você a escolher a função correta para subs­ti­tuir valores NULL.

Sintaxe e pa­râ­me­tros

As funções SQL NVL, ISNULL e IFNULL exigem dois pa­râ­me­tros, que cha­ma­re­mos aqui de “Valor1” e “Valor2”:

  • Valor1: Define o conjunto de dados ou a coluna onde valores NULL devem ser subs­ti­tuí­dos.
  • Valor2: Define o valor pelo qual você deseja subs­ti­tuir valores NULL nos re­sul­ta­dos. Aqui, você pode inserir valores como “Sem In­for­ma­ção”, “0” ou “Des­co­nhe­cido” 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 nor­mal­mente usadas em conjunto com SQL SELECT e FROM, que permitem definir os conjuntos de dados a serem ve­ri­fi­ca­dos.

Tabela com­pa­ra­tiva entre SQL NVL, ISNULL e IFNULL

Assim se di­fe­ren­ciam as funções, muito se­me­lhan­tes, para a subs­ti­tui­ção de valores NULL:

Função SQL Tra­ta­mento de valores NULL Com­pa­ti­bi­li­dade
SQL NVL Substitui valores NULL en­con­tra­dos por um valor desejado Oracle, Db2
SQL ISNULL Substitui valores NULL ou cadeias de ca­rac­te­res 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 apli­ca­ções a SQL NVL é indicada?

A subs­ti­tui­ção de valores NULL é útil em várias situações, entre elas:

  • Subs­ti­tuir dados de clientes ou endereços de entrega ausentes por valores legíveis, como “des­co­nhe­cido”.
  • Subs­ti­tuir saldos ou tran­sa­ções des­co­nhe­ci­das pelo valor numérico 0.
  • Subs­ti­tuir valores vazios em dados de pacientes, fi­nan­cei­ros ou de produção por valores padrão e médios.
  • Subs­ti­tuir ava­li­a­ções ou feedbacks ausentes por “Sem in­for­ma­ção”.
  • Trocar imagens ou in­for­ma­ções ausentes por “Imagem não dis­po­ní­vel” ou “In­for­ma­ções não dis­po­ní­veis”.
Dica

Você quer poder gerenciar dados de forma eficiente, com de­sem­pe­nho confiável, es­ca­la­bi­li­dade e segurança contra falhas? O SQL Server Hosting da IONOS oferece ser­vi­do­res de hos­pe­da­gem per­so­na­li­za­veis, com todas essas vantagens.

VPS Hosting (Virtual Private Servers)
World-class VPS at America’s lowest price

Hos­pe­da­gem VPS poderosa e de baixo custo para rodar suas apli­ca­ções sob medida, com as­sis­tente pessoal e suporte 24 horas.

  • Save 50% or more vs leading hosts
  • Unlimited traffic & no setup fees 
  • 99.99% uptime gua­ran­teed
  • 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, ela­bo­ra­mos o seguinte exemplo: uma tabela de clientes com colunas de endereço, idade e ID do cliente. Queremos subs­ti­tuir possíveis valores NULL na coluna “Endereço” pelo valor “Sem In­for­ma­çã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

Al­ter­na­ti­vas à função SQL NVL

As funções SQL NVL, ISNULL e IFNULL são quase idênticas. No entanto, é im­por­tante qual delas é suportada pelo seu banco de dados. Outra al­ter­na­tiva muito se­me­lhante a comandos SQL, ope­ra­do­res SQL e funções SQL é SQL COALESCE. COALESCE é suportada por quase todas as apli­ca­ções de banco de dados e também permite subs­ti­tuir valores NULL por um valor subs­ti­tuto.

A sintaxe também é idêntica:

COALESCE(Valor1, Valor2)
sql
Ir para o menu principal