我的情況如下。我有一個包含產品層次結構的表格。下表是數據集的摘錄:如何使用sql定義層次結構中的層數?
child parent
1 2
2 3
4 5
6 7
我想添加一個包含層次結構深度(子級)的列。東西如下:
child parent depth
1 2 2
2 3 1
4 5 1
6 7 1
我該怎麼做在oracle?謝謝!
我的情況如下。我有一個包含產品層次結構的表格。下表是數據集的摘錄:如何使用sql定義層次結構中的層數?
child parent
1 2
2 3
4 5
6 7
我想添加一個包含層次結構深度(子級)的列。東西如下:
child parent depth
1 2 2
2 3 1
4 5 1
6 7 1
我該怎麼做在oracle?謝謝!
喜歡的東西:
SELECT child, parent, level
FROM your_table
START WITH parent NOT IN (SELECT child FROM your_table)
CONNECT BY parent = PRIOR child;
輸出:
CHILD PARENT LEVEL
----- ------ -----
1 2 2
2 3 1
4 5 1
6 7 1
看起來像我正在尋找。謝謝。關卡在哪裏來自您的選擇? –
@PatrickBalada ['LEVEL'僞列](https://docs.oracle.com/cd/B19306_01/server.102/b14200/pseudocolumns001.htm#i1009261)由分層查詢生成。 – MT0
謝謝你的快速回答! –
你至少11克R2使用?然後遞歸的*公共表格*(CTE)是可能的 – Richard
爲什麼第一行和第二行的深度分別是3和2?他們應該沒有2和1的深度? – MT0
你是對的深度。我改變了它。謝謝 –