递归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、


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