Bê-á-bá do SQL: Filtrando valores com o WHERE

Bê-á-bá do SQL: Filtrando valores com o WHERE

Material de apoio:
1. Antes de iniciar esse tutorial, acesse a introdução da série de tutoriais clicando aqui, siga o passo a passo para usar a nossa plataforma interativa de SQL e pratique em tempo real.

Agora que já falamos sobre o SELECT, chegou a hora de aprofundarmos um pouco mais as nossas consultas em SQL e falarmos sobre a clausula WHERE.

A cláusula WHERE no SQL funciona como um filtro da consulta, ao usá-la a query irá extrair apenas os registros que obedecerem à determinada condição.

A sintaxe básica do WHERE é a seguinte:

SELECT coluna1, coluna2, coluna3
FROM nome_tabela
WHERE coluna1 = condicao

Na primeira linha da query acima selecionamos as colunas que desejamos que apareçam na tabela que será formada com o resultado da query, na segunda linha ,em "FROM", especificamos de qual tabelas estamos extraindo a informação e na terceira linha especificamos a condição para filtrar os registros que irão aparecer no resultado.

Os seguintes operadores podem ser usados com o comando WHERE:

=Igual
>Maior que
<Menor que
>=Maior ou igual
<= Menor ou igual
<> ou !=Diferente de
IN Incluindo (múltiplos valores)
NOT INExcluindo (múltiplos valores)
BETWEENEntre dois valores
LIKEBusca um padrão parecido
IS NULLTraz todos os valores nulos
IS NOT NULLTraz todos os valores que não são nulos

Para exemplificar, vamos considerar a tabela "pessoas" da nossa base de dados:

O atributo alt desta imagem está vazio. O nome do arquivo é image-1.png

Para filtrar valores iguais ou diferentes

SELECT nome, sexo
FROM pessoas
WHERE sexo = 'Feminino'

No exemplo acima a condição WHERE está filtrando todos os valores cuja coluna "sexo" corresponda ao valor "Feminino":

Observação: Em campos de texto (char ou varchar) é necessário que os valores buscados estejam entre aspas simples.

SELECT nome, sexo
FROM pessoas
WHERE sexo <> 'Feminino'

Já no código acima estamos buscando todos os registros cuja coluna "sexo" tenha valor diferente de "Feminino":

Para filtrar valores maiores ou menores

SELECT nome, idade
FROM pessoas
WHERE idade > 50

Neste exemplo, estamos buscando apenas pessoas cuja idade seja maior que 50 anos:

Note que neste caso, as pessoas que tiverem exatamente 50 anos não irão aparecer nos resultados.

Para isso, deve-se usar o operador >= (maior ou igual). Os operadores < (menor) e <= (menor e igual) podem ser usados da mesma forma, filtrando consequentemente pessoas que tenham menos de 50 anos, ou que tenham 50 anos ou menos.

Incluindo ou excluindo múltiplos valores

Para filtrar múltiplos valores, deve-se usar os operadores IN (incluindo) e NOT IN (excluindo), seguidos dos valores entre parênteses e separados por vírgulas.

SELECT id, nome
FROM pessoas
WHERE nome IN ('Ana', 'Joao', 'Maria', 'Rafael')

No código acima estamos filtrando somente as pessoas cujo nome sejam Ana, Joao, Maria e Rafael:

O mesmo funciona para o inverso, agora vamos filtrar todas as pessoas cujos nomes não sejam os mencionados acima:

SELECT id, nome
FROM pessoas
WHERE nome NOT IN ('Ana', 'Joao', 'Maria', 'Rafael')

Filtrando um intervalo de valores

SELECT nome, idade
FROM pessoas
WHERE idade BETWEEN 20 AND 25

Na query acima estamos buscando todas as pessoas cujo valor da coluna "idade" esteja entre 20 e 25:

Ao trocar a expressão "BETWEEN" por "NOT BETWEEN" é possível excluir do resultado todas as pessoas cuja idade estejam entre o intervalo mencionado.

Filtrando valores parecidos

Ao usar o operador "LIKE" é possível filtrar valores parecidos ou que tenham o mesmo padrão da condição estipulada.

SELECT nome
FROM pessoas
WHERE nome LIKE '%A%'

No código acima estamos buscando todas as pessoas cujo nome contenha a letra "A". O "%" no início e no fim da expressão indica que a letra "A" pode estar posicionada em qualquer lugar do campo:

SELECT nome
FROM pessoas
WHERE nome LIKE 'A%'

Já no caso acima, ao tirar o "%" do início da expressão estamos indicando que desejamos filtrar apenas os valores que comecem com a letra "A":

SELECT nome
FROM pessoas
WHERE nome LIKE '%A'

E no caso acima filtramos todos os nomes que terminem com a letra "A":

Ao substituir a cláusula LIKE por NOT LIKE é possível filtrar todos os valores que não apresentem o determinado padrão.

Valores Nulos

Para filtrar valores nulos (inexistentes) o correto é usar as expressões IS NULL (é nulo) ou IS NOT NULL (não é nulo), usando a sintaxe abaixo:

SELECT nome
FROM pessoas
WHERE nome IS NOT NULL

Neste caso estamos filtrando todas as pessoas cujo campo "nome" tenha algum valor associado.

Ao trocar a expressão IS NOT NULL por IS NULL iremos filtrar todas as pessoas cujo campo nome não tenha informação.

Usando mais de uma condição

É possível combinar mais condições na mesma query usando AND (e) e OR (ou), como no exemplo abaixo:

SELECT nome, idade, uf
FROM pessoas
WHERE idade > 20
AND uf = 'SP'

No exemplo acima estamos indicando que sejam mostrados apenas os registros cujo campo idade seja maior que 20 e o campo uf seja igual a "SP".

SELECT nome, idade, uf
FROM pessoas
WHERE idade > 20
AND (uf = 'SP' OR uf = 'RJ')

Já no exemplo acima buscamos todas as pessoas cuja idade seja maior que 20 e que residam no estado de SP ou RJ. Você pode escrever quantas condições desejar na sua query!

Não deixe de conferir os artigos anteriores da série Bê-á-bá do SQL:
Introdução
Estrutura do SELECT

Gostou do conteúdo?

Você pode acompanhar mais conteúdos como esse aqui no Blog da Kondado!

A Kondado é uma plataforma que se conecta com mais de 80 fontes de dados, sem que você precise escrever uma linha de código.

Utilizando a plataforma você consegue: conectar ferramentas a ferramentas de Business Intelligence como o Power BI ou Looker Studio.

Além de criar fluxos de ETL para seus bancos de dados, data warehouse, data lake e muito mais.

Teste a Kondado por 14 dias grátis e aproveite!

Filtrar dados em SQL com a cláusula WHERE

Aprenda a usar a cláusula WHERE para filtrar registros em consultas SQL, combinando operadores básicos, IN, BETWEEN, LIKE e múltiplas condições.

1
Escreva o SELECT base

Comece definindo as colunas que deseja retornar e a tabela de origem, no formato SELECT coluna1, coluna2 FROM nome_tabela. Esse é o ponto de partida antes de aplicar qualquer filtro.

2
Adicione a cláusula WHERE com a condição

Inclua WHERE coluna = condicao para retornar apenas os registros que atendem ao critério. Use operadores =, &gt;, &lt;, &gt;=, &lt;= ou &lt;&gt; conforme o tipo de comparação.

3
Filtre múltiplos valores com IN ou BETWEEN

Use WHERE coluna IN ('A','B','C') para listar valores específicos ou WHERE coluna BETWEEN 10 AND 20 para faixas numéricas e de datas. Para excluir, troque por NOT IN.

4
Busque padrões de texto com LIKE

Use WHERE coluna LIKE '%texto%' para procurar valores que contêm um padrão. 'A%' filtra valores que começam com A; '%A' os que terminam com A. Use NOT LIKE para excluir padrões.

5
Combine condições com AND e OR

Junte critérios usando AND (todas verdadeiras) e OR (pelo menos uma verdadeira). Use parênteses para agrupar, por exemplo WHERE idade &gt; 20 AND (uf = 'SP' OR uf = 'RJ').

6
Centralize os dados antes de consultar

Para rodar SQL contra dados sempre atualizados, replique suas fontes para um destino analítico com a Kondado e consulte tudo em um único lugar.

Perguntas frequentes

O que é a cláusula WHERE no SQL e para que serve?
A cláusula WHERE funciona como um filtro da consulta SQL. Ao usá-la, a query extrai apenas os registros que obedecerem à determinada condição especificada, permitindo encontrar exatamente os dados que você precisa em segundos.
Quais operadores podem ser usados com o comando WHERE?
Os principais operadores são: = (igual), > (maior que), < (menor que), >= (maior ou igual), <= (menor ou igual), <> ou != (diferente de), IN (incluindo múltiplos valores), NOT IN (excluindo múltiplos valores), BETWEEN (entre dois valores), LIKE (busca um padrão parecido), IS NULL (valores nulos) e IS NOT NULL (valores não nulos).
Como filtrar múltiplos valores com IN e NOT IN?
Use os operadores IN (incluindo) ou NOT IN (excluindo) seguidos dos valores entre parênteses e separados por vírgulas. Exemplo: WHERE nome IN ('Ana', 'Joao', 'Maria', 'Rafael') filtra apenas esses nomes, enquanto NOT IN exclui esses valores do resultado.
Como funciona o operador LIKE para buscar padrões?
O LIKE busca valores parecidos com o padrão estipulado. O símbolo % indica posição flexível: '%A%' busca nomes que contenham A em qualquer posição, 'A%' busca nomes que comecem com A, e '%A' busca nomes que terminem com A. Use NOT LIKE para excluir padrões.
Como combinar mais de uma condição no WHERE?
É possível combinar condições usando AND (e) e OR (ou). Exemplo: WHERE idade > 20 AND uf = 'SP' mostra apenas registros com idade maior que 20 E uf igual a SP. Você também pode usar parênteses para agrupar condições: WHERE idade > 20 AND (uf = 'SP' OR uf = 'RJ').
A Kondado oferece alguma ferramenta para quem não sabe SQL?
Sim! A Kondado é uma plataforma de integração de dados que se conecta com mais de 80 fontes sem que você precise escrever código. Você pode criar fluxos de ETL para destinos como data warehouses e bancos de dados, além de conectar a ferramentas de BI. Teste grátis por 14 dias!

Escrito por·Publicado em 2020-11-09·Atualizado em 2026-05-04