Operador Oracle INTERSECT

Caso você tenha a necessidade de comparar resultados entre duas ou mais consultas no banco, existe um operador da ORACLE que disponibiliza esta funcionalidade que é o INTERSECT. Ele retorna todas as linhas selecionadas por todas as consultas ou conjunto de dados que estão presentes na consulta.

Se um registro estiver em uma consulta e não na outra este será omitido pelo INTERSECT.

A sintaxe para o operador INTERSECT é:

SELECT expression1, expression2, … expression_n
FROM tables
[WHERE conditions]

INTERSECT

SELECT expression1, expression2, … expression_n
FROM tables
[WHERE conditions];

Exemplo – Com Expressão Única
O exemplo de uso do INTERSECT abaixo retorna um campo com o mesmo tipo de dados:

SELECT supplier_id
FROM suppliers

INTERSECT

SELECT supplier_id
FROM orders;

Exemplo – com múltiplas expressões
No exemplo abaixo veja como usar o operador INTERSECT para retornar mais de uma coluna.

SELECT contact_id, last_name, first_name
FROM contacts
WHERE first_name <> ‘John’

INTERSECT

SELECT customer_id, last_name, first_name
FROM customers
WHERE customer_id >= 89;

Bom, fico por aqui. Dúvidas, entre em contato.

Forte abraço.

Eduardo Santana
bufallos@bufallos.com.br

Leave a Reply

Your email address will not be published. Required fields are marked *