首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检索层次结构的优势行

检索层次结构的优势行
EN

Stack Overflow用户
提问于 2018-01-15 23:33:11
回答 1查看 337关注 0票数 2

我有一个示例表,其中包含3列:idparent_idname

假设我的表中的层次结构如下所示:

代码语言:javascript
复制
I
  I.A
    I.A.a
    I.A.b
      I.A.b1
      I.A.b2
  I.B
  I.C
II
  II.A 

我的目标是检索给定行的所有上行。例如,对于I.A.b2,结果将是:

代码语言:javascript
复制
I
I.A
I.A.b
I.A.b2

我尝试使用以下connect-by查询,但没有成功:

代码语言:javascript
复制
 SELECT name
 FROM test 
 where id = 7 -- 7 is the id of I.A.b2 in my example
 CONNECT BY PRIOR id = parent_id
 START WITH parent_id is null;

任何建议都会有帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-15 23:41:36

诀窍是以相反的顺序(从末尾开始)遍历记录,然后使用order by颠倒顺序,如下所示:

代码语言:javascript
复制
SELECT     name
FROM       test 
CONNECT BY PRIOR parent_id = id
START WITH id = 7
ORDER BY   rownum DESC

要获取树中每条记录的级别,可以使用row_number()分析函数:

代码语言:javascript
复制
SELECT     ROW_NUMBER() OVER (ORDER BY rownum DESC), name
FROM       test 
CONNECT BY PRIOR parent_id = id
START WITH id = 7
ORDER BY   rownum DESC
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48266059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档