SQL/Consultas Básicas/WHERE, CASE WHEN e Funções
SQL⏱ ~2 min de leitura

WHERE, CASE WHEN e Funções

Filtragem, operadores lógicos e funções de texto e data

WHERE é a cláusula de filtragem do SQL. Ela avalia condições linha por linha e retorna apenas as que satisfazem o critério. Suporta operadores de comparação (=, !=, <, >, <=, >=), lógicos (AND, OR, NOT), e especiais como LIKE, IN, BETWEEN e IS NULL.

LIKE permite busca por padrão de texto: % substitui zero ou mais caracteres, _ substitui exatamente um caractere. IN verifica pertencimento a um conjunto de valores. BETWEEN verifica intervalos (inclusivo em ambas as extremidades).

CASE WHEN é a estrutura condicional do SQL — funciona como if/else e pode ser usada em qualquer lugar que aceite uma expressão: SELECT, WHERE, ORDER BY, GROUP BY.

Exemplo.java
-- Filtragem básica
SELECT * FROM produtos
WHERE preco > 100 AND estoque > 0;

-- OR e NOT
SELECT * FROM clientes
WHERE cidade = 'São Paulo' OR cidade = 'Rio de Janeiro';

SELECT * FROM pedidos
WHERE NOT status = 'cancelado';

-- LIKE para padrões de texto
SELECT * FROM clientes
WHERE nome LIKE 'Ana%';       -- começa com "Ana"

SELECT * FROM emails
WHERE endereco LIKE '%@gmail.com';  -- termina com @gmail

SELECT * FROM codigos
WHERE codigo LIKE 'BR-___-XX';  -- _ = 1 caractere exato

-- IN — substitui múltiplos OR
SELECT * FROM pedidos
WHERE status IN ('pendente', 'processando', 'enviado');

-- BETWEEN — intervalo inclusivo
SELECT * FROM vendas
WHERE data BETWEEN '2024-01-01' AND '2024-12-31';

-- IS NULL / IS NOT NULL
SELECT * FROM clientes WHERE telefone IS NULL;

-- CASE WHEN
SELECT
    nome,
    salario,
    CASE
        WHEN salario >= 10000 THEN 'Sênior'
        WHEN salario >= 5000  THEN 'Pleno'
        ELSE 'Júnior'
    END AS nivel
FROM funcionarios;
💡 Dica pro

Índices são criados em colunas usadas frequentemente no WHERE. LIKE com % no início (LIKE "%texto") não usa índice — evite quando possível.

Recompensa+30 XP+exercícios