# SQL ISNULL(): Como verificar e substituir valores NULL

A função SQL ISNULL() é utilizada para verificar se uma expressão tem o valor NULL. Se esse for o caso, a função substitui o NULL por um valor de substituição do mesmo tipo de dado.

## O que é a função SQL ISNULL()?

Em [SQL (*Structured Query Language*)](https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/o-que-e-sql/), você pode criar tabelas e preenchê-las com valores. Quando você omite atribuir um valor a um campo dentro da tabela, esse campo permanece vazio, recebendo o valor NULL, que indica que não há um valor real presente. Se você deseja garantir que **um valor de substituição seja considerado em vez de NULL**, a linguagem oferece a função SQL ISNULL(). Essa função verifica primeiramente se uma expressão é NULL. Se for o caso, ela avalia uma expressão de substituição definida. Caso contrário, o valor original é considerado.

## Sintaxe da função SQL ISNULL()

O funcionamento da função SQL ISNULL() fica claro quando analisamos a sintaxe:

```sql
ISNULL(expressão, valor_substituto);
```

A função primeiro verifica se o valor da expressão especificada é NULL. Se for o caso, o valor substituto é retornado. Caso contrário, a SQL ISNULL() usa a expressão original. É importante observar que “expressão” e “valor\_substituto” **devem ter o mesmo tipo de dado**.

## Funcionamento da função SQL ISNULL()

A função SQL ISNULL() é utilizada dentro de um comando SQL como `SELECT`. Nos exemplos a seguir, você verá primeiro a saída quando o valor da expressão é NULL e depois o outro caso possível. Este é o primeiro código:

```sql
SELECT ISNULL(NULL, 'Este é o valor substituto');
```

A saída seria:

```sql
Este é o valor substituto
```

No próximo exemplo, a função é aplicada novamente, mas desta vez a expressão possui um valor e, portanto, retorna esse valor:

```sql
SELECT ISNULL('Este é o valor original', 'Este é o valor substituto');
```

A saída seria:

```sql
Este é o valor original
```

Portanto, obtemos esta saída:

```sql
Este é o valor original
```

## Exemplo prático de SQL ISNULL()

Para o próximo exemplo, criamos uma tabela simples chamada “Pedidos”. Esta tabela contém colunas para o número do cliente, o nome do cliente e um número de pedido:

<table>
  <thead>
    <tr>
      <th>Número do Cliente</th>
      <th>Nome</th>
      <th>Número do Pedido</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1326</td>
      <td>Martins</td>
      <td>00451</td>
    </tr>
    <tr>
      <td>1288</td>
      <td>Vieira</td>
      <td></td>
    </tr>
    <tr>
      <td>1262</td>
      <td>Martins</td>
      <td>00318</td>
    </tr>
  </tbody>
</table>

Se quisermos estruturar melhor nossa tabela, podemos usar a função SQL ISNULL() para substituir o valor NULL pelo marcador `00000`. O código correspondente seria:

```sql
SELECT Número_do_Cliente,
ISNULL(Número_do_Pedido, '00000'), Número_do_Pedido
FROM Pedidos;
```

Se executarmos este código, obteremos a seguinte tabela:

<table>
  <thead>
    <tr>
      <th>Número do Cliente</th>
      <th>Nome</th>
      <th>Número do Pedido</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1326</td>
      <td>Martins</td>
      <td>00451</td>
    </tr>
    <tr>
      <td>1288</td>
      <td>Vieira</td>
      <td>00000</td>
    </tr>
    <tr>
      <td>1262</td>
      <td>Martins</td>
      <td>00318</td>
    </tr>
  </tbody>
</table>

## Combinar SQL ISNULL() com funções agregadas

SQL ISNULL() funciona também em **combinação com funções de agregação** como [SQL AVG()](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-avg/), [SQL COUNT()](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-count/) ou `SUM()`. Você pode aprender sobre essa interação com o exemplo a seguir. Vamos expandir a tabela acima e adicionar uma coluna para o valor do pedido em euros. A tabela agora é a seguinte:

<table>
  <thead>
    <tr>
      <th>Número do Cliente</th>
      <th>Nome</th>
      <th>Número do Pedido</th>
      <th>Valor do Pedido</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1326</td>
      <td>Martins</td>
      <td>00451</td>
      <td>300</td>
    </tr>
    <tr>
      <td>1288</td>
      <td>Vieira</td>
      <td>00000</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>1262</td>
      <td>Martins</td>
      <td>00318</td>
      <td>100</td>
    </tr>
  </tbody>
</table>

Se quisermos substituir o valor NULL por 100 e calcular o valor total de todos os pedidos, usamos a função `SUM()`. O código é o seguinte:

```sql
SELECT SUM(ISNULL(Valor_do_Pedido, 100))
FROM Pedidos;
```

A saída será:

```sql
500
```

O sistema substitui o valor NULL por 100 e adiciona assim 300 + 100 + 100.

## Alternativas à função SQL ISNULL()

Existem outras opções semelhantes à SQL ISNULL() que são classificadas como funções NULL. Incluem [SQL COALESCE()](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-coalesce/), [SQL IFNULL()](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-ifnull/) e [SQL NVL()](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-nvl/). Elas também verificam se um valor é NULL e podem substituí-lo por um valor de substituição.

Dica Escolha o servidor adequado para suas necessidades! Com o [SQL Server Hosting](https://www.ionos.com/cloud/sql-server-hosting "SQL Server Hosting — IONOS") da IONOS, você não só tem a opção de escolher entre MSSQL, MySQL e MariaDB, como também se beneficia de consultoria personalizada, fortes recursos de segurança e desempenho de primeira linha.


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