我在使用CONNECT BY语句时遇到了一些困难。我在编写1个给定记录的查询时没有问题(使用START WITH),但我正在寻找创建提取的可能性。
数据
1个
2
3
4
5
6个
表格
ID PARENT_ID
1个2
1个5
1个6
2个3
2个4
我需要的是一张充满以下信息/记录的表格。
期望输出
ID PARENT_ID
1个2
1个3
1个4
1个5
1个6
2个3
2个4
如果我使用以下查询
SELECT PARENT_ID
FROM TABLE
START WITH ID = 1
CONNECT BY NOCYCLE PRIOR ID = PARENT_ID
我将得到以下结果
2
3
4
5
6
这实际上是我要为ID 1寻找的parent_id。
如果我删除了开头,我有以下列表
2
3
4
5
6
3
4个
我试图在声明中添加ID,但这也不起作用。不知道是否有可能有这样的输出?
答案 0 :(得分:0)
您忘记了prior
关键字。您希望将parent_id连接到上一条记录的ID。 (可能是相反,但你会注意到这么快。;-))
SELECT ID
FROM TABLE
START WITH ID = 1
CONNECT BY prior ID = PARENT_ID