1像这样创建表
CREATE TABLE oracle_connet_by_test (
item_id NUMBER PRIMARY KEY,
parent_id NUMBER,
item_desc VARCHAR2(8));
INSERT INTO oracle_connet_by_test VALUES(1, 0, 'AAA');
INSERT INTO oracle_connet_by_test VALUES(2, 0, 'BBB');
INSERT INTO oracle_connet_by_test VALUES(3, 1, 'CCC');
INSERT INTO oracle_connet_by_test VALUES(4, 2, 'DDD');
INSERT INTO oracle_connet_by_test VALUES(5, 1, 'EEE');
INSERT INTO oracle_connet_by_test VALUES(6, 3, 'FFF');
INSERT INTO oracle_connet_by_test VALUES(7, 3, 'GGG');
commit;
2当我运行此脚本时,输出将是
SQL> SELECT LEVEL,
2 ITEM_ID,
3 PARENT_ID, LPAD(' ', 4 * (LEVEL - 1)) || ITEM_DESC AS ITEM_DESC
4 FROM ORACLE_CONNET_BY_TEST
5 START WITH parent_Id = 0
6 CONNECT BY PRIOR ITEM_ID = PARENT_ID
7 ;
LEVEL ITEM_ID PARENT_ID ITEM_DESC
---------- ---------- ---------- -----------
1 1 0 AAA
2 3 1 CCC
3 6 3 FFF
3 7 3 GGG
2 5 1 EEE
1 2 0 BBB
2 4 2 DDD
3问题:如果我想要这个结果,我该如何编写代码?
LEVEL ITEM_ID PARENT_ID ITEM_DESC SUPER_ID
---------- ---------- ---------- ---------------- ----------
1 1 0 AAA 1
2 3 1 CCC 1
3 6 3 FFF 1
3 7 3 GGG 1
2 5 1 EEE 1
1 2 0 BBB 2
2 4 2 DDD 2