rat*_*tsy 2 oracle hierarchical
有人可以在oracle的分层查询中解释使用nocycle并通过root子句连接,当我们不使用'start with'时我们得到行的顺序是什么,我的意思是当我们不使用'start with'时我们得到很多很多行,任何人都可以使用简单的emp表来解释nocycle并通过root连接(与开始有什么不同?),谢谢你的帮助
如果您的数据中有一个循环(A - > B - > A - > B ...),ORA-01436: CONNECT BY loop in user data如果您执行分层查询,Oracle将抛出异常.NOCYCLE指示Oracle返回行,即使存在这样的循环也是如此.
CONNECT_BY_ROOT使您可以访问根元素,甚至可以访问查询中的多个图层.使用HR模式:
select level, employee_id, last_name, manager_id ,
connect_by_root employee_id as root_id
from employees
connect by prior employee_id = manager_id
start with employee_id = 100
LEVEL EMPLOYEE_ID LAST_NAME MANAGER_ID ROOT_ID
---------- ----------- ------------------------- ---------- ----------
1 100 King 100
2 101 Kochhar 100 100
3 108 Greenberg 101 100
4 109 Faviet 108 100
...
Run Code Online (Sandbox Code Playgroud)
在这里,您看到我从员工100开始,并开始寻找他的员工.该CONNECT_BY_ROOT操作使我获得国王的雇员标识甚至四级下来.起初我被这个操作员弄得很困惑,认为它意味着"通过根元素连接"或其他东西.可以把它想象成"CONNECT BY子句的根".
| 归档时间: |
|
| 查看次数: |
13649 次 |
| 最近记录: |