# SQL IFNULL(): Substituir valores NULL

A função SQL IFNULL() é utilizada para verificar o valor de uma expressão. Se esse valor for NULL, um valor alternativo é retornado. Se o valor não for NULL, o sistema exibe o valor original.

## O que é SQL IFNULL()?

Em [SQL (*Structured Query Language*)](https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/o-que-e-sql/), a função [SQL COALESCE()](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-coalesce/) é uma ferramenta importante. No entanto, se você deseja retornar um valor específico quando uma expressão é **vazia ou NULL**, pode usar a função SQL IFNULL(). Esta função verifica a expressão e executa uma das duas ações possíveis: se o valor verificado for NULL, retorna um valor alternativo que você especifica. Se o valor não for NULL, o valor original da expressão é exibido. Pode parecer confuso na teoria, mas com alguns exemplos práticos, você entenderá rapidamente a utilidade da função.

## Sintaxe e funcionamento de SQL IFNULL()

Para entender como funciona a função SQL IFNULL(), vejamos primeiro a sintaxe básica dela. Veja como ela é estruturada:

```sql
IFNULL(expressão, expressão_alternativa);
```

A primeira expressão é aquela cujo valor será verificado. A expressão alternativa será retornada se a primeira expressão for NULL.

## Exemplos de aplicação de SQL IFNULL()

Se você quiser experimentar a função SQL IFNULL(), considere estes dois exemplos simples. No primeiro exemplo, a função verificará que o valor da expressão não é NULL. Aqui está o código correspondente:

```sql
IFNULL('Este é o primeiro valor', 'Esta é a alternativa');
```

Quando você executar o código, a saída será:

```sql
Este é o primeiro valor
```

A primeira expressão tem um valor, portanto a função não usa a alternativa. No segundo exemplo:

```sql
IFNULL(' ', 'Esta é a alternativa');
```

A saída será:

```sql
Esta é a alternativa
```

Dado que o valor da primeira expressão é NULL, a função usa o valor alternativo.

Isso também funciona com valores numéricos:

```sql
IFNULL(10, 15);
```

A saída será:

```sql
10
```

Quando o valor é NULL, a função SQL IFNULL() utiliza o valor alternativo:

```sql
IFNULL(NULL, 15);
```

A saída será:

```sql
15
```

## Exemplo de aplicação de SQL IFNULL()

Uma aplicação prática da função SQL IFNULL() pode ser a seguinte. Suponha que você tenha uma tabela chamada “Entregas” com as colunas Nome, Endereço de Entrega e Endereço de Faturamento:

<table>
  <thead>
    <tr>
      <th>Nome</th>
      <th>Endereço de Entrega</th>
      <th>Endereço de Faturamento</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Schmidt</td>
      <td>Rua das Flores, 12</td>
      <td>Rua das Flores, 12</td>
    </tr>
    <tr>
      <td>Moraes</td>
      <td>Largo do Sol, 2</td>
      <td>Rua Central, 66</td>
    </tr>
    <tr>
      <td>Pedroso</td>
      <td>Rua Palmelo, 32</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>Martins</td>
      <td>Avenida Marantes, 77</td>
      <td>Rua da Ponte, 62</td>
    </tr>
    <tr>
      <td>Becker</td>
      <td>Rua Monte Verde, 41</td>
      <td>Rua Monte Verde, 41</td>
    </tr>
  </tbody>
</table>

Para garantir que todos os registros estejam completos, mesmo que um cliente tenha fornecido apenas um endereço de entrega e não um endereço de faturamento, você pode usar a função SQL IFNULL(). O código SQL com o comando SQL `SELECT` adequado é:

```sql
SELECT Nome, IFNULL(Endereço_Faturamento, Endereço_Entrega) AS Endereço
FROM Entregas;
```

Isso resulta em uma nova tabela, onde pelo menos um endereço é registrado para cada cliente:

<table>
  <thead>
    <tr>
      <th>Nome</th>
      <th>Endereço</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Schmidt</td>
      <td>Rua das Flores, 12</td>
    </tr>
    <tr>
      <td>Moraes</td>
      <td>Largo do Sol, 2</td>
    </tr>
    <tr>
      <td>Pedroso</td>
      <td>Rua Palmelo, 32</td>
    </tr>
    <tr>
      <td>Martins</td>
      <td>Avenida Marantes, 77</td>
    </tr>
    <tr>
      <td>Becker</td>
      <td>Rua Monte Verde, 41</td>
    </tr>
  </tbody>
</table>

## Alternativas ao SQL IFNULL()

Além da função mencionada `COALESCE()`, há outras alternativas ao SQL IFNULL(). A [SQL NVL()](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-nvl/) também converte um valor NULL em um valor de sua escolha. A [SQL ISNULL()](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-isnull/) verifica se um valor é NULL ou não e, se necessário, o substitui por um valor definido.

Dica A base de dados perfeita para suas necessidades: com o [SQL Server Hosting](https://www.ionos.com/cloud/sql-server-hosting "SQL Server Hosting — IONOS") da IONOS, você pode escolher entre MSSQL, MySQL ou MariaDB e aproveitar o máximo desempenho e fortes recursos de segurança.


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