--关于使用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