我正在网上查看不同的CTE示例,因为我正在尝试学习CTE,但我遇到了两种主要的CTE写法
我指的是以下示例:
http://blog.sqlauthority.com/2009/08/08/sql-server-multiple-cte-in-one-select-statement-query/
并想知道它与UNION和一个CTE名称的递归有何不同?
答案 0 :(得分:1)
CTE不必递归。您可以使用它们而不是第一个示例正在执行的子查询。您可以在子查询位置使用一个或多个CTE。
了解CTE的最佳方法是创建一些测试数据并针对它们运行两个查询,以查看结果的不同。
答案 1 :(得分:0)
通常基于WHERE等限制条件,递归CTE从派生的CTE表达式内构建其锚点集。递归是独立的,而不是依赖于其他较早定义的表达式/集。
假设有多个CTE,是指由后续的SELECT语句串联定义的一组CTE,然后通过比较,这是按定义顺序对锚集(和字段)进行的一组转换。