Как пересечь две таблицы без потери повторяющихся значений оракула - PullRequest
0 голосов
/ 31 мая 2018

Как пересечь две таблицы без потери дублирующихся значений в Oracle?

TAB1:

A
A
B
C

TAB2:

A
A
B
D

Вывод:

A
A
B

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Если я правильно понимаю:

select a.*, row_number() over (partition by col1 order by col1)
from a
intersect
select b.*, row_number() over (partition by col1 order by col1)
from b;

Это добавляет новый порядковый номер в каждую строку.Пересечение перейдет к соответствующему номеру.

Используется partition by col1 - col1 является произвольным.Возможно, вам придется включить все столбцы в partition by.

0 голосов
/ 31 мая 2018

Подзапрос отфильтрует строки:

select *
  from tab1
 where col in (select col from tab2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...