Olá Bia, tudo bem?
Para a sua necessidade de listar clientes que não são de São Paulo (SP) nem do Rio de Janeiro (RJ), a terceira opção que você apresentou é a mais adequada:
SELECT [clientes], [estado]
FROM [tabela de clientes]
WHERE [estado] NOT IN ('SP', 'RJ');
Essa consulta utiliza o operador NOT IN
, que é ideal para filtrar registros que não pertencem a um conjunto específico de valores, como 'SP' e 'RJ' nesse caso.
As duas primeiras opções que você mencionou não funcionariam corretamente para o que você deseja. Vamos entender o porquê:
where [estado] != 'SP' or 'RJ'
: Essa estrutura não está correta porque a condição or 'RJ'
não é uma comparação válida é apenas uma string isolada. E no SQL, qualquer string não vazia é considerada verdadeira. É como se o SQL interpretasse assim: "WHERE ([estado] != 'SP') OR ('RJ' IS TRUE)
". E como 'RJ' é uma string, o SQL avalia isso como TRUE, sempre.
where [estado] <> 'SP' or 'RJ'
: Similar à primeira, a condição or 'RJ'
não é uma comparação válida e terá o mesmo efeito de retornar todos os registros.
Portanto, a opção com NOT IN
é a mais apropriada para resolver o seu desafio.
Espero ter ajudado.
Qualquer dúvida que surgir, compartilhe no fórum.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!