# 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](https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/o-que-e-sql/), uma das mais usadas do mundo. Nossa [introdução ao SQL com exemplos](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/aprender-sql-com-exemplos/ "Aprender 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**:

```sql
NVL(Valor1, Valor2)
```

**ISNULL**:

```sql
ISNULL(Valor1, Valor2)
```

**IFNULL**:

```sql
IFNULL(Valor1, Valor2)
```

Essas funções são normalmente usadas em conjunto com [SQL SELECT](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/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:

<table>
  <thead>
    <tr>
      <th>Função SQL</th>
      <th>Tratamento de valores NULL</th>
      <th>Compatibilidade</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>SQL `NVL`</td>
      <td>Substitui valores NULL encontrados por um valor desejado</td>
      <td>Oracle, Db2</td>
    </tr>
    <tr>
      <td>SQL `ISNULL`</td>
      <td>Substitui valores NULL ou cadeias de caracteres vazias por um valor desejado</td>
      <td>SQL Server, MySQL, MS ACCESS</td>
    </tr>
    <tr>
      <td>SQL `IFNULL`</td>
      <td>Substitui valores NULL por um valor desejado; não considera espaços em branco como valores NULL</td>
      <td>MySQL, Google BigQuery</td>
    </tr>
  </tbody>
</table>

## 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](https://www.ionos.com/cloud/sql-server-hosting "Hospedagem do servidor SQL") da IONOS oferece servidores de hospedagem personalizaveis, com todas essas vantagens.

## 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`

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

### Exemplo de SQL `ISNULL`

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

### Exemplo de SQL `IFNULL`

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

## 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](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/operadores-sql/) e funções SQL é [SQL COALESCE](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/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:

```sql
COALESCE(Valor1, Valor2)
```


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-nvl/](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-nvl/) for AI/LLM consumption.