SELECT
c.Nome AS nome
, c.CPF AS cpf
, c.Cidade AS cidade
, c.Estado AS estado
FROM tabelaclientes AS c
WHERE 1=1
AND (c.Cidade = 'Rio de Janeiro' OR c.Cidade = 'Salvador')
AND c.CPF LIKE '6%'
;
SELECT
c.Nome AS nome
, c.CPF AS cpf
, c.Cidade AS cidade
, c.Estado AS estado
FROM tabelaclientes AS c
WHERE 1=1
AND (c.Cidade = 'Rio de Janeiro' OR c.Cidade = 'Salvador')
AND c.CPF LIKE '6%'
;
Olá, Carlos. Como vai?
Excelente resolução! Você aplicou conceitos fundamentais de lógica booleana e filtragem de padrões que são vitais para qualquer Tech Lead ou Engenheiro de Dados. Seu código mantém o padrão de alta legibilidade que você já demonstrou em outros exercícios.
Gostaria de destacar dois pontos técnicos muito importantes na sua solução:
OR entre parênteses, você garantiu que o banco de dados trate as cidades como um bloco único de condição. Sem os parênteses, a lógica poderia ser mal interpretada, priorizando o AND e trazendo resultados incorretos.LIKE com Curinga: O uso de LIKE '6%' é a maneira mais eficiente de filtrar CPFs que começam com um dígito específico. O símbolo % funciona como um curinga, representando qualquer sequência de caracteres após o número 6.Como você já está habituado a usar boas práticas, uma alternativa para deixar a linha de filtragem de cidades ainda mais concisa seria substituir o OR pelo operador IN, que você utilizou em resoluções anteriores: AND c.Cidade IN ('Rio de Janeiro', 'Salvador').
A imagem dos resultados no seu editor de SQL mostra claramente que o filtro funcionou perfeitamente, retornando apenas o registro que atende a todos os critérios geográficos e de padrão numérico simultaneamente.
Continue com esse rigor técnico, Carlos! Sua organização serve de excelente exemplo para a comunidade.
Espero que possa ter lhe ajudado!