根据顺序将多个oracle表分组到一个表中
我是甲骨文的新手。我有三张桌子: 启动\u节点:根据顺序将多个oracle表分组到一个表中,oracle,Oracle,我是甲骨文的新手。我有三张桌子: 启动\u节点: ref_id id orn -------------------- 1 100 0 1 200 1 1 300 2 1 400 3 2 160 0 2 260 1 2 360 2 2 460 3 ref_id id orn ---------
ref_id id orn
--------------------
1 100 0
1 200 1
1 300 2
1 400 3
2 160 0
2 260 1
2 360 2
2 460 3
ref_id id orn
--------------------
1 100 0
1 200 1
1 300 2
1 400 3
1 1000 4
1 2000 5
1 150 6
1 250 7
1 350 8
1 450 9
2 160 0
2 260 1
2 360 2
2 460 3
2 1500 4
2 2500 5
2 3500 6
2 4500 7
2 5500 8
2 170 9
2 270 10
2 370 11
2 470 12
中间节点:
ref_id id orn
--------------------
1 1000 0
1 2000 1
2 1500 0
2 2500 1
2 3500 2
2 4500 3
2 5500 4
结束节点:
ref_id id orn
--------------------
1 150 0
1 250 1
1 350 2
1 450 3
2 170 0
2 270 1
2 370 2
2 470 3
我需要根据ref_id和orn将它们分组到一个表中,其中orn是开始节点、中间节点和结束节点的顺序:
启动\u节点:
ref_id id orn
--------------------
1 100 0
1 200 1
1 300 2
1 400 3
2 160 0
2 260 1
2 360 2
2 460 3
ref_id id orn
--------------------
1 100 0
1 200 1
1 300 2
1 400 3
1 1000 4
1 2000 5
1 150 6
1 250 7
1 350 8
1 450 9
2 160 0
2 260 1
2 360 2
2 460 3
2 1500 4
2 2500 5
2 3500 6
2 4500 7
2 5500 8
2 170 9
2 270 10
2 370 11
2 470 12
有关于如何开始的提示吗?尝试加入表中的选择,例如:
SELECT 1 table_id,
ref_id,
id,
orn
FROM start_nodes
根据需要订购连接。使用此表作为对所需列的查询的内部查询。您可以使用
UNION ALL
实现它,如下所示
SELECT REF_ID, ID, ROW_NUMBER() OVER (PARTITION BY REF_ID ORDER BY NOD, ORN) - 1 AS ORN
FROM
(SELECT T.*, 1 AS NOD FROM START_NODES T
UNION ALL
SELECT T.*, 2 AS NOD FROM MIDDLE_NODES T
UNION ALL
SELECT T.*, 3 AS NOD FROM END_NODES T)