@Vicky,这个版本是根据您的查询修改的,可能对您更合适。
WITH a AS(
SELECT mt.e_id, rownum r FROM master_tab mt
JOIN transaction_tab tt ON(tt.e_id = mt.e_id AND tt.analysis_comp = 1)
WHERE mt.owner_id = 72
),
b AS(
SELECT mt.e_id, rownum r FROM master_tab mt
JOIN transaction_tab tt ON(tt.e_id = mt.e_id AND tt.analysis_comp = 1)
WHERE mt.owner_id = 73
)
SELECT a.e_id a_eid, b.e_id b_eid from a full outer join b
on a.r=b.r ;
使用的此版本
ROWNUM
对于每个子查询,然后逐行匹配这两列。
为什么我们使用
row_number
/
rownum
?因为您正在使用行号连接这两列。
在SQL(或任何基于表的输出)中,通常期望行中的数据彼此相关。您的演示可能会让习惯于此的人感到困惑。为什么不单独输出?