WITH遞迴原理

2022-08-14 05:33:12 字數 1079 閱讀 9931

公用表表示式(cte):common table expression

with [(target_column_list)]as(

union all

);

定位點成員只是乙個返回有效關係結果表的查詢,與用於定義非遞迴表示式的查詢類似,定位點成員查詢只被呼叫一次。

下面舉例理解遞迴原理:

以下**演示了如何使用遞迴cte來返回有關某個雇員及其所有各級下屬的資訊

with empscte as

(select empid,mgrid, firstname,lastname

from hr.employees

where empid=2

union all

select c.empid,c.mgrid,c.firstname,c.lastname from

empscte as p join hr.employees as c on c.mgrid =p.empid

)select empid ,mgrid,firstname,lastname

from empscte;

定位點成員對hr.employees表進行查詢,只返回雇員id等於2的雇員行:

select empid ,mgrid,firstname,lastname 

from hr.employees

where empid=2

遞迴成員查詢對cte(代表前一次遞迴呼叫的結果集)和employees表進行聯接,返回在前一次遞迴呼叫的結果集中所返回雇員的直接下級:

select c.empid,c.mgrid,c.firstname,c.lastname from

empscte as p join hr.employees as c on c.mgrid =p.empid

換句話說,要多次重複呼叫遞迴成員,每次呼叫返回下一級下屬,第一次呼叫遞迴成員,返回雇員2的直接下屬:雇員3和雇員5.第二次呼叫遞迴成員,返回雇員3和雇員5 的直接下屬:雇員4,6,7,8,9.第三次呼叫遞迴成員,沒有更多地下級雇員,遞迴成員返回乙個空的結果集,遞迴至此結束。

遞迴工作原理

遞迴 recursion 就是子程式 或函式 直接呼叫自己或通過一系列呼叫語句間接呼叫自己,是一種描述問題和解決問題的基本方法。遞迴通常用來解決結構自相似的問題。所謂結構自相似,是指構成原問題的子問題與原問題在結構上相似,可以用類似的方法解決。具體地,整個問題的解決,可以分為兩部分 第一部分是一些特...

js遞迴原理

本部落格主要講述關於js的函式遞迴,主要從 變數 函式 和 函式 變數 兩個方面說明解釋。相對簡單,直接上 function fun fun 用遞迴 來求 5 的階乘 n n n 1 定義乙個函式,用於求 n 的階乘 function func n func n 1 因為傳遞的引數是 n 1,那麼就...

遞迴的原理

遞迴是經典演算法常用的方法,了解並掌握遞迴可以大大提公升你的程式編寫的能力。1 遞迴的條件 2 最簡單的遞迴 n的階層 3 遞迴的原理 遞迴的條件 遞迴要滿足4個條件 分別是 1函式必須有引數 2函式的引數必須改變,3函式必須呼叫自身,4函式有退出條件。最簡單的遞迴 n的階層 include int...