Oracle Database – Operador IN – Testar Valores em uma Lista

Operador IN no Oracle Database

Usamos o operador IN para testar valores presentes em uma lista passada à cláusula WHERE para filtragem de dados em uma consulta.

Sintaxe:

SELECT colunas
FROM tabela
WHERE coluna IN (valor1, valor2, ... valorN);

A condição definida dentro dos parênteses do operador IN é chamada de condição de membro.

Exemplo

Vejamos um exemplo usando o esquema padrão HR.

Queremos que sejam retornados apenas os nomes e sobrenomes dos empregados cujos ids de departamento sejam 30, 50 ou 80:

SELECT first_name, last_name, department_id
FROM employees
WHERE department_id IN (30, 50, 80);

Testar valores em consultas com operador IN no Oracle Database

Os dados passados ao operador IN podem estar em qualquer ordem. Caso sejam passadas strings ou datas, elas devem estar englobadas entre aspas simples. Por exemplo, suponha que queiramos saber os salários dos empregados cujos sobrenomes sejam King, Fripp e Atkinson:

SELECT last_name, salary
FROM employees
WHERE last_name IN ('King', 'Fripp', 'Atkinson');

Testar valores em consultas com operador IN no Oracle Database

Note que há dois funcionários cujo sobrenome é “King”, por isso aparecem dois registros para esse sobrenome no resultado da consulta.

Inverter lista com NOT IN

Também é possível inverter a lista passada ao operador IN empregando o operador lógico NOT em conjunto. Por exemplo, suponha que queremos mostrar os nomes e sobrenomes dos empregados cujos ids de departamento NÃO sejam 30, 50 ou 80. Para tal, podemos fazer:

SELECT first_name, last_name, department_id
FROM employees
WHERE department_id NOT IN (30, 50, 80);

Operador NOT IN no Oracle Database - SQL

Note que na tabela de resultados nenhuma das linhas retornadas possui os valores 30, 50 ou 80 na coluna DEPARTMENT_ID.

É isso aí! Veremos mais operadores e comandos do Oracle Database em nossa próxima lição. Até mais!

Sobre Fábio dos Reis (1333 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*