with reporting_hierarchy
(employee_id, manager_id, reporting_level,first_name,last_name,salary, title)as
(select employee_id, manager_id, 0 reporting_level, first_name, last_name,salary, title from more_employees
union all
select e.employee_id, e.manager_id,r.reporting_level + 1 as reporting_level, e.first_name,e.last_name,e.salary, e.title
from reporting_hierarchy r, more_employees e
where r.employee_id=e.manager_id
)
search depth first by employee_id set order_by_employee_id
cycle title set same_title to 'Y' default 'N'
select employee_id, manager_id, lpad(' ',2*reporting_level)||first_name||' '||last_name as employee, salary, title, same_title
from reporting_hierarchy
order by order_by_employee_id;
在where句中,r.employee_id=e.manager_id和e.employee_id=r.manager_id 互換有什么區別?作用是什么?
uj5u.com熱心網友回復:
在where句中,r.employee_id=e.manager_id和e.employee_id=r.manager_id 互換有什么區別?作用是什么?沒有你的結構,從陳述句上來看:
前者是 向上查詢, 自己-> 自己的上級-> 上級的上級
后者是向下查詢。 自己-> 自己的下屬們-> 下屬的下屬們。
uj5u.com熱心網友回復:

這是我的more_employees的那張表,我練習的是使用遞回子查詢因子化查詢分層資料,其中r.employee_id=e.manager_id和e.employee_id=r.manager_id 這兩個等式用于了不同的兩個coding,當我對調r. 和e.的時候,他們的輸出會有差別,不明白他們的邏輯順序,是不是這個有區別而產生的輸出的差別?
uj5u.com熱心網友回復:
如果是遞回,當然有差異了。向下遍歷和向上遞回的區別uj5u.com熱心網友回復:
r.employee_id=e.manager_id 如果是這個等式,那么應該是r.employee_id,然后進入e.manager_id進行遍歷嗎?轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/70796.html
標籤:開發
