Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Select com WHERE e IN

Na aula 2, atividade 4 é apresentado pelo professor o seguinte código:

SELECT * FROM TB_CLIENTES WHERE CIDADE IN ('Rio de Janeiro', 'Sao Paulo') AND (IDADE >= 20 AND IDADE <= 22)

Que busca todos os "clientes" que moram no (Rio de Janeiro OU São Paulo) E todos que possuem (idade maior ou igual a 20 E idade menor ou igual a 22) Dito isso pensei nas possíveis utilização do IN, ele funciona como um "OR" somente em textos ou também posso usar com números ? Tentei desta maneira e não obtive sucesso:

SELECT * FROM TB_CLIENTES WHERE IDADE IN (>= 20, <= 22)

A ideia era apresentar os clientes que possuem idade maior ou igual a 20 OU menor ou igual a 22 Existe alguma forma de fazer isso com IN ou somente com OR ?

2 respostas

Fala Victor, tudo bem?

O IN pode ser aplicado tanto em campos alfanuméricos quanto em campos numéricos. Sua query não funcionou porque dentro do IN são aceitos apenas os valores a serem procurados. Não é possível adicionar operadores nele.

Tanto no IN quanto no OR você precisará colocar todos os valores do intervalo. Uma alternativa para não ter que colocar todos os valores nas condições é usar o operador BETWEEN.

SELECT * FROM TB_CLIENTES WHERE IDADE BETWEEN 20 AND 22;

Abraço

solução!

Olá Victor.

Com o IN você faz uma busca pelo campo com valor entre os valores listados.

Com o NOT IN você faz uma busca pelo campo com o valor que não está na lista de valores.

O IN é mais interessante usar quando a busca é por valores que não são um intervalo ou quando são poucos valores.

Você pode fazer assim por exemplo:

SELECT * FROM TB_CLIENTES WHERE IDADE IN (18, 22, 25)

SELECT * FROM TB_CLIENTES WHERE IDADE IN (20, 21, 22);

SELECT * FROM TB_CLIENTES WHERE CIDADE IN ('cidade 1', 'cidade 2', 'cidade 3');

SELECT * FROM TB_CLIENTES WHERE IDADE NOT IN (19, 20, 21, 23, 24);

Abraço.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software