Bóson Treinamentos em Ciência e Tecnologia

Oracle Database – Operador IN – Testar Valores em uma Lista

Filtrar consultas com lista de valores e operador IN

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);

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');

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);

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!

Sair da versão mobile