我使用的是oracle12db和client。在这件事上需要帮助。我想填充一个列,在根之后显示根、子级和直接父级?让我们说“通过第二根连接”?
这是我目前的代码。
SELECT
PARENT,
CONNECT_BY_ROOT PARENT_ID AS ROOT_ID,
????2ND_ROOT_ID,
CHILD_ID AS CHILD_ID
FROM TABLE
START WITH
PARENT_ID = 1
CONNECT BY
PRIOR CHILD_ID = PARENT_ID
输入
PARENT_ID CHILD_ID
1 1.1
1 1.2
1.1 1.1.1
1.1 1.1.2
1.1 1.1.3
1.1 1.1.4
1.1 1.1.5
1.2 1.2.1
1.2 1.2.2
1.1.1 1.1.1.1
1.1.1 1.1.1.2
1.1.3 1.1.3.1
1.1.3 1.1.3.2
1.1.3 1.1.3.3
输出:
ROOT_ID 2ND_ROOT_ID CHILD_ID
1 1.1 1.1
1 1.2 1.2
1 1.1 1.1.1
1 1.1 1.1.2
1 1.1 1.1.3
1 1.1 1.1.4
1 1.1 1.1.5
1 1.2 1.2.1
1 1.2 1.2.2
1 1.1 1.1.1.1
1 1.1 1.1.1.2
1 1.1 1.1.3.1
1 1.1 1.1.3.2
1 1.1 1.1.3.3
还尝试使用“按路径连接”中的子字符串
regexp_substr(SYS_CONNECT_BY_PATH, ....
在根之后获取父级,但它给了我一个ora-01489错误。
敬请指教,谢谢
1条答案
按热度按时间h43kikqp1#
您可以通过路径使用条件系统连接: