【发布时间】:2020-11-07 04:01:49
【问题描述】:
我正在使用 oracle 12 DB 和客户端。在这方面需要帮助。我想填充一个在根之后显示根、子和直接父的列?让我们说“通过第二根连接”?
这是我目前的代码。
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 错误。
请多多指教,提前致谢
【问题讨论】:
标签: sql oracle connect-by