关于使用CTE(公用表表达式)的递归查询

--关于使用CTE(公用表表达式)的递归查询
--CTE 的基本语法结构如下:
 WITH expression_name [ ( column_name [,...n] ) ]
    AS
    ( CTE_query_definition )
    --只有在查询定义中为所有结果列都提供了不同的名称时,列名称列表才是可选的。
    --运行 CTE 的语句为:
    SELECT <column_list> FROM expression_name;

 --CTE后面也可以跟其他的CTE,但只能使用一个with,多个CTE中间用逗号(,)分隔,如下面的SQL语句所示:
 WITH   cte1
          AS ( SELECT   *
               FROM     table1
               WHERE    name LIKE '测试%'
             ),
        cte2
          AS ( SELECT   *
               FROM     table2
               WHERE    id > 20
             ),
        cte3
          AS ( SELECT   *
               FROM     table3
               WHERE    price < 100
             )
    SELECT  a.*
    FROM    cte1 a ,
            cte2 b ,
            cte3 c
    WHERE   a.id = b.id
            AND a.id = c.id


--摘录:http://www.cnblogs.com/chengxiaohui/articles/2977104.html

猜你喜欢

转载自www.cnblogs.com/shy1766IT/p/9356137.html