Neste tutorial, exploraremos a cláusula WHERE IN para descobrir como podemos usá-la para filtrar os resultados de uma determinada tabela ou conjunto de resultados.
Cláusula SQL WHERE IN
O seguinte mostra a sintaxe básica da cláusula WHERE IN em SQL:
SELECIONE coluna1, coluna2, ...
DE nome_tabela
WHERE nome_coluna IN (valor1, valor2, ...);
Começamos com uma instrução básica “select” seguida pelas colunas que desejamos incluir no conjunto de resultados.
A seguir, especificamos a tabela da qual desejamos recuperar os resultados. Por último, especificamos a condição de filtro usando a cláusula WHERE seguida do nome da coluna que desejamos filtrar. Após a cláusula IN, especificamos uma lista de valores que queremos usar para filtragem.
Exemplo 1: Filtrar um único resultado
Para demonstrar melhor como usar a cláusula WHERE IN, vejamos um exemplo. Considere a tabela “filme” do banco de dados de amostra Sakila.
Suponha que desejamos recuperar todos os filmes com classificação PG ou PG-13. Podemos usar a cláusula WHERE IN da seguinte forma:
SELECIONE título, ano de lançamento, classificaçãoDO filme
ONDE classificação IN ('PG');
Neste caso, fornecemos uma lista de um único valor que desejamos recuperar na cláusula IN.
Exemplo 2: Filtrar vários valores
Também podemos especificar mais de um item na lista de valores. Por exemplo, para recuperar os filmes com uma lista com classificação PG e PG-13, podemos executar a consulta da seguinte forma:
SELECIONE título, ano de lançamento, classificaçãoDO filme
Classificação WHERE IN ('PG', 'PG-13');
A saída resultante é a seguinte:
Exemplo 3: Filtro com Subconsulta
Também podemos usar WHERE IN em uma subconsulta que nos permite filtrar os resultados de um determinado conjunto de resultados.
Suponha que desejemos filtrar os filmes com base no idioma. Por exemplo, para recuperar os filmes nos idiomas inglês e japonês, podemos usar WHERE IN dentro de uma subconsulta da seguinte forma:
SELECIONE título, ano de lançamento, classificaçãoDO filme f
ONDE idioma_id IN (
SELECIONE idioma_id
DE idioma
WHERE nome IN ('Inglês', 'Japonês')
);
Neste exemplo, criamos uma subconsulta que recupera os valores “idioma_id” para os idiomas inglês e japonês da tabela “idiomas”. Na consulta principal, selecionamos os filmes com base nos valores “idioma_id” resultantes.
Conclusão
Nesta postagem, aprendemos como trabalhar com a cláusula WHERE IN em SQL para filtrar os resultados que correspondem a um ou vários valores em uma determinada lista.