Oracle - SQL - TABLE 中的自引用

ORACLE - SQL - SELF REFERENCE IN TABLE

我有 Table ( TABLE A ) 如下所示,

ID  INDEX_ID  
1   1  
2   1.1  
3   1.1.1  
4   2
5   3
6   3.1
7   3.2

我希望以

这样的方式创建结果集
INDEX PARENT PARENT_ID  
1     0      0  
1.1   1      1   
1.1.1 1.1    2  
2     0      0  
3     0      0  
3.1   3      5  
3.2   3      5  

请问有人可以直接使用 SQL 得到这个结果集吗?

此致, 南迪

使用自连接:

SELECT t1.INDEX_ID AS INDEX,
       COALESCE(t2.INDEX_ID, '0'),
       COALESCE(t2.ID, '0')
FROM TABLEA t1
LEFT JOIN TABLEA t2
    ON t1.INDEX_ID = SUBSTR(t2.INDEX_ID, 1, INSTR(t2.INDEX_ID, '.', -1) - 1)