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 nomeTabelaWHERE 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_alunoFROM AlunosWHERE 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_alunoFROM AlunosWHERE 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_alunoFROM AlunosWHERE cidade_aluno IN (SELECT nome_cidade FROM Cidades);