如何通过sql获取oracle connect中的最终父id列

如何通过sql获取oracle connect中的最终父id列,sql,oracle,connect-by,Sql,Oracle,Connect By,我创建这样的表 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');

我创建这样的表

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; 通过测试创建表oracle\u connet\u( 项目标识号主键, 家长身份证号码, 项目2(8)); 将测试值(1,0,'AAA')插入oracle连接; 将测试值(2,0,'BBB')插入oracle_连接_; 将测试值(3,1,'CCC')插入oracle_连接_; 将测试值(4,2,'DDD')插入oracle_连接_; 将测试值(5,1,'EEE')插入oracle连接; 将测试值(6,3,'FFF')插入oracle_连接_; 将测试值(7,3,'GGG')插入oracle_connet_; 犯罪 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 SQL>选择级别, 2项目编号:, 3父项ID,LPAD('',4*(1级))| |项描述为项描述 4来自ORACLE\u CONNET\u BY\u测试 5以父项Id=0开始 6按先前项目连接\u ID=父项\u ID 7. 级别项目\u ID父项\u ID项目\u描述 ---------- ---------- ---------- ----------- 110 AAA 2 3 1 CCC 3 6 3 FFF 3 7 3 GGG 2 5 1 EEE 120 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 级别项目\u ID父级\u ID项目\u描述超级\u ID ---------- ---------- ---------- ---------------- ---------- 110 AAA 1 2 3 1 CCC 1 3 6 3 FFF 1 3 7 3 GGG 1 2 5 1 EEE 1 1 200 BBB 2 2 4 2 DDD 2 使用“按根目录连接”:

SELECT LEVEL,
           ITEM_ID,
           PARENT_ID, LPAD(' ', 4 * (LEVEL - 1)) || ITEM_DESC AS ITEM_DESC
           , connect_by_root item_id  AS SUPER_ID
      FROM ORACLE_CONNET_BY_TEST
     START WITH parent_Id = 0
    CONNECT BY PRIOR ITEM_ID = PARENT_ID
    ;