ORACLE - SQL - 表中的自参考

时间:2016-07-01 15:31:22

标签: reference self

我有表(表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来提示使用此结果集吗?

此致 南迪

1 个答案:

答案 0 :(得分:1)

使用自我加入:

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)