Blog

Postado em em 1 de março de 2024

3 Estruturas Condicionais Especiais no SQL

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

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

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.

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.

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.

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.

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.

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.

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

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?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador