30. IN
Escrito por Uianes Luiz Rockenbach Biondo.
Última atualização em 04 out. 2023
Ú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);