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);
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!
Escreva um comentário