30. IN

Escrito por Uianes Luiz Rockenbach Biondo.
Última atualização em 04 out. 2023

O operador IN permite retornar valores de uma lista em um comando WHERE. Sintaxe:

SELECT coluna1, coluna2, ...
FROM nomeTabela
WHERE coluna IN (valor1, valor2, ...);

Por exemplo, caso você queira listar somente o nome de pessoas de "Três Passos" e "Tenente Portela":

id_aluno nome_aluno cidade_aluno
1 Uianes Santo Augusto
2 Maria Três Passos
3 José Santo Augusto
4 Antônio Santo Augusto
5 João Tenente Portela
SELECT nome_aluno
FROM Alunos
WHERE cidade_aluno IN ('Três Passos', 'Tenente Portela');

É possível utilizar NOT junto com IN, ou seja, os valores a serem retornados não deverão estar contidos na lista.

SELECT nome_aluno
FROM Alunos
WHERE cidade_aluno NOT IN ('Três Passos', 'Tenente Portela');

Neste caso o resultado retornado será qualquer cidade, menos Três Passos e Tenente Portela.

Outra possibilidade é utilizar o IN para criar uma tabela com dados de outra tabela. Observe as tabelas "Alunos" e "Cidades":

Tabela Alunos

id_aluno nome_aluno cidade_aluno
1 Uianes Santo Augusto
2 Maria Três Passos
3 José Santo Augusto
4 Antônio Santo Augusto
5 João Tenente Portela

Tabela Cidades

id_cidade nome_cidade
1 Santo Augusto
2 Campo Novo
3 Três Passos
4 Chiapetta

Caso você queira mostrar o nome dos alunos, mas somente aqueles cuja cidade apareça na tabela "Cidades", podemos fazer isso através de um IN.

SELECT nome_aluno
FROM Alunos
WHERE cidade_aluno IN (SELECT nome_cidade FROM Cidades);