Oracle如何使用“查询”评估分层查询;按rownum连接<;=";
在这个查询的结果中,B和C只有1个值(级别?) 但是A有3个值和级别(ID_路径结果只包含A) 我知道使用“按级别连接”是一种层次结构,所以我知道它将生成n+n^n列 但是我不知道为什么按rownum连接只显示这些值Oracle如何使用“查询”评估分层查询;按rownum连接<;=";,oracle,Oracle,在这个查询的结果中,B和C只有1个值(级别?) 但是A有3个值和级别(ID_路径结果只包含A) 我知道使用“按级别连接”是一种层次结构,所以我知道它将生成n+n^n列 但是我不知道为什么按rownum连接只显示这些值 请帮助我T您的分层查询根据标准将层次结构中的一行连接到另一行(执行rownum 1) 其次,必须了解,在Oracle中,分层查询是使用深度优先搜索构建的 您的起始行集是: Result ID LVL ROWNUM LV_PATH ID_PATH
请帮助我T您的分层查询根据标准将层次结构中的一行连接到另一行(执行
rownum 1
)
其次,必须了解,在Oracle中,分层查询是使用深度优先搜索构建的
您的起始行集是:
Result
ID LVL ROWNUM LV_PATH ID_PATH
A 1 1 ->1 ->A
A 2 2 ->1->2 ->A->A
A 3 3 ->1->2->3 ->A->A->A
B 1 4 ->1 ->B
C 1 5 ->1 ->B
[why B and C has 1 level !?]
查询生成的第一行是:
1. 'A'
2. 'B'
3. 'C'
查询现在返回并探测原始行集中该行的任何直接“子项”。它找到第一条记录
'A'
。确定这一行是否是第一行的子行的条件是rownum,这非常适合理解wow:▷ 谢谢你的完美回答!
1. 'A'
2. 'B'
3. 'C'
1. 'A' rownum=1 level=1
2. 'A' -> 'A' rownum=2 level=2
3. 'A' -> 'A' -> 'A' rownum=3 level=3
4. 'B' rownum=4 level=1
5. 'C' rownum=5 level=1