3 Estruturas Condicionais Especiais no SQL

Aprenda 3 estruturas condicionais especiais no SQL para que você consiga lidar com valores nulos!

No SQL, três funções ajudam a lidar com valores nulos (NULL): IFNULL (ou COALESCE) substitui um valor nulo por outro definido; ISNULL verifica se um valor é nulo; e NULLIF retorna NULL quando dois valores são iguais. Elas evitam que campos vazios atrapalhem cálculos e comparações nas consultas.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

O que você aprende neste vídeo

Resposta rápida: Nesta aula de SQL, o Marcos ensina 3 estruturas condicionais especiais do MySQL para tratar valores nulos: o IFNULL (troca o nulo por um valor que você define), o ISNULL (retorna 1 se for nulo, 0 se não) e o NULLIF (retorna nulo quando dois valores são iguais). São funções muito úteis para limpar e tratar dados que vêm com campos vazios.

Neste vídeo (14 min):

  • 0:00 - As 3 estruturas condicionais especiais do MySQL para tratar valores nulos.
  • 4:00 - IFNULL: trocar o valor nulo por um valor que você define.
  • 8:00 - ISNULL: retornar 1 se for nulo e 0 se não for.
  • 10:00 - NULLIF: retornar nulo quando dois valores são iguais.

3 Estruturas Condicionais Especiais no SQL

Na aula de hoje, quero te mostrar 3 estruturas condicionais especiais no SQL para trabalhar com valores nulos.

São 3 funções do SQL que te permitem lidar com valores nulos, ou seja, com a ausência de valor. Lembrando que valores nulos são diferentes de valores vazios ou zero.

Ao longo dessa aula, te mostrarei as funções IFNULL, ISNULL e NULLIF. Cada uma delas te auxiliará a identificar e lidar com os valores nulos de uma forma diferente, para que você consiga fazer suas análises de dados sem problemas.

Então, vem comigo que eu vou te mostrar o que cada uma dessas 3 estruturas condicionais especiais no SQL pode fazer para ajudar nas suas análises.

Estruturas Condicionais Especiais para Valores Nulos

Um valor nulo é a ausência de valor. Ou seja, um valor nulo não é a mesma coisa que um espaço vazio ou zero.

Com as funções que iremos ver ao longo dessa aula, fica fácil e prático identificar e lidar com os valores nulos, permitindo que você trabalhe e realize suas análises de dados sem problemas.

Como Visualizar Valores Nulos

Vamos começar visualizando os valores nulos do banco de dados. Para isso, vou selecionar toda a tabela de clientes presente nele.

SQL
SELECT * FROM clientes;

Visualizar Valores Nulos

Visualizando essa tabela, podemos ver que na coluna Telefone temos alguns valores nulos. Nesse pedaço exibido na imagem, podemos ver dois valores nulos e um espaço em branco logo abaixo do primeiro valor nulo.

Repare que o valor nulo aparece identificado como null, diferente do espaço em branco, que é apenas um espaço vazio.

Função IFNULL – Substituir Valor Nulo

A função IFNULL é uma função condicional no SQL que permite verificar se um valor é nulo e, caso seja, substituí-lo por um novo valor.

Ícone SQLSQL Impressionador

Domine a linguagem mais importante do Mundo para quem trabalha com Dados, seja para se destacar na sua empresa atual, para conseguir um diferencial em processos seletivos ou até mesmo para entrar em áreas de dados.

Começar agoraSeta para a direita
Fundo SQLTelas SQL
Luz SQL

Essa função recebe dois argumentos: o primeiro é a expressão que será verificada, ou seja, aquela que queremos verificar se é nula; e o segundo argumento é o valor alternativo que irá substituir o valor nulo.

Para substituir os telefones que estão com os valores nulos, precisamos selecionar toda a nossa tabela, passando como primeiro argumento a coluna Telefone e como segundo argumento o valor pelo qual queremos substituir os nulos encontrados.

SQL
SELECT
    *,
    IFNULL(Telefone, '(99) 99999-9999')
FROM clientes;

Como resultado, teremos a tabela abaixo com uma nova coluna com os valores substituídos.

Função IFNULL – Substituir Valor Nulo

Repare que os valores nulos foram alterados, porém o valor vazio permaneceu da mesma forma.

Função ISNULL – Verificar se o Valor é Nulo

A função ISNULL verifica se o valor é nulo ou não. Caso seja nulo, ela retorna 1; caso não seja, retorna 0. Essa função recebe como argumento o valor que será verificado.

Seguindo nosso exemplo, podemos utilizar a função ISNULL para verificar os valores da coluna Telefone.

SQL
SELECT
    *,
    ISNULL(Telefone)
FROM clientes;

Executando essa consulta, teremos uma nova coluna na nossa tabela, onde os valores não nulos receberam o valor de 0 e os valores nulos receberam 1.

Função ISNULL – Verificar se o Valor é Nulo

Observe que assim como ocorreu com a função IFNULL, o espaço vazio não é reconhecido como nulo; apenas os valores realmente nulos recebem o valor de 1.

Essa função pode ser utilizada para filtrar a nossa tabela, exibindo apenas os clientes que possuem o telefone nulo.

SQL
SELECT
    *,
FROM clientes
WHERE ISNULL(Telefone);

O comando WHERE sempre retorna os valores que são verdadeiros. No SQL, o verdadeiro é representado pelo 1 e o falso pelo 0. Então, basicamente, o que estamos fazendo é filtrar a partir da função ISNULL quais são os clientes que têm o telefone com valor nulo.

Função ISNULL com filtro WHERE

Repare que aquele valor vazio não consta nessa lista de clientes com o telefone nulo. Para tratar isso, podemos utilizar a função NULLIF.

NULLIF – Substituindo Valor por Nulo

A função NULLIF no SQL é usada para comparar duas expressões e retornar null caso as duas expressões sejam iguais. Caso contrário, ela manterá a primeira expressão.

Para isso, precisamos passar dois argumentos para ela. O primeiro argumento é o valor que queremos verificar e o segundo argumento é a expressão com que ele será comparado.

Então, se quisermos transformar os valores vazios da nossa tabela em null, precisamos passar como primeiro argumento a coluna Telefone e como segundo argumento o espaço vazio.

SQL
SELECT
    *
FROM clientes
WHERE ISNULL(NULLIF(Telefone, ' '));

Ou seja, dessa vez estamos filtrando os clientes que possuem o valor nulo como Telefone, mas dentro do filtro estamos aplicando também a função NULLIF para que quando algum valor do Telefone for vazio, ela converta esse valor para nulo.

Executando essa consulta, teremos a nossa tabela contendo tanto os telefones nulos quanto os telefones em branco, vazios.

NULLIF – Substituindo Valor por Nulo

Perguntas frequentes

1. Como tratar valores nulos no SQL?

Use IFNULL ou COALESCE para substituir o nulo por um valor padrão (por exemplo, IFNULL(coluna, 0)). Para verificar se um campo é nulo, use IS NULL ou ISNULL; e use NULLIF para transformar um valor específico em nulo quando necessário.

2. Qual a diferença entre IFNULL e COALESCE?

Ambos substituem valores nulos. O IFNULL aceita dois argumentos (valor e substituto). O COALESCE aceita vários e retorna o primeiro que não for nulo, sendo mais flexível e padrão entre os diferentes bancos de dados.

3. Para que serve a função NULLIF?

O NULLIF(a, b) retorna NULL quando a e b são iguais e retorna a quando são diferentes. É útil para evitar divisões por zero (NULLIF(divisor, 0)) ou para transformar um valor específico, como um texto vazio, em nulo.

4. Por que valores nulos atrapalham as consultas?

Porque NULL representa ausência de valor, e operações com ele (somas, comparações) costumam resultar em NULL também. Tratar os nulos com IFNULL/COALESCE garante cálculos corretos e evita resultados inesperados nos relatórios.

Conclusão – 3 Estruturas Condicionais Especiais no SQL

Nessa aula, você aprendeu 3 estruturas condicionais especiais no SQL para trabalhar com valores nulos.

Aprendeu as funções IFNULL, ISNULL e NULLIF, três funções muito importantes que permitem encontrar e lidar com valores nulos no banco de dados.

Hashtag Treinamentos

Para acessar outras publicações de SQL, clique aqui!


Quer aprender mais sobre SQL com um minicurso básico gratuito?