遞歸SQL練習

定義:

    遞歸SQL在數據庫中,通過CTE(Common Table Expression)來實現。遞歸SQL由遞歸CTE以及對遞歸CTE結果的查詢組成。

    簡而言之,如果CTE中的FULL SELECT 在FROM 子句中引用到CTE本身,就是遞歸CTE。遞歸CTE由3部分組成:

    1、初始查詢

    初始查詢是CTE中對基本表進行查詢的部分。CTE定義中的第一個FULLSELECT畢須不包含對CTE自身的應用。

    2、遞歸查詢

    遞歸查詢就是通過對CTE自身的引用,啓動遞歸邏輯的查詢。遞歸查詢需要遵循以下幾點:

  1. 遞歸查詢和初始查詢結果必須包含相同數量的數據列;
  2. 遞歸查詢和初始查詢結果數據列的、長度等必須一致;
  3. 遞歸查詢不能包含 GROUP BY 或者 HAVING 子句;
  4. 遞歸查詢不能包含 Outer Join;
  5. 遞歸查詢不能包含子查詢 (Subquery);
  6. 遞歸查詢必須用 UNION ALL 聯結。
   3、終止條件

    終止條件通常是隱形的,即如果前一次遞歸查詢返回的結果集爲空,則終止遞歸;也可以在遞歸查詢中設定終止條件,如限定遞歸查詢的深度等。

原文:

   原文地址點擊打開鏈接,如果你已經瞭解過遞歸SQL,那麼可以直接看下面的實例。如果不熟悉,建議直接看原文。

實例:

1、

2、

3、

4、

5、

6、

7、

8、

9、


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章