SQL递归查询知多少

大神们有没有人讲详细点的我想讲解下,SQL递归查询知多少
最新回答
我本是薄情之人却恋你成痴

2026-10-23 12:28:09

1、基本概念

公用表表达式 (CTE) 可以认为是在单个 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句的执行范围内定义的临时结果集。公用表表达式可以包括对自身的引用,这种表达式称为递归公用表表达式。

创建递归查询。有关详细信息,请参阅使用公用表表达式的递归查询。
在不需要常规使用视图时替换视图,也就是说,不必将定义存储在元数据中。
启用按从标量嵌套 select 语句派生的列进行分组,或者按不确定性函数或有外部访问的函数进行分组。
在同一语句中多次引用生成的表。

MSDN上对CTE的介绍
T-SQL查询进阶--详解公用表表达式(CTE)

CTE 的基本语法结构如下:

WITH expression_name [ ( column_name [,...n] ) ]
AS
( CTE_query_definition )
--只有在查询定义中为所有结果列都提供了不同的名称时,列名称列表才是可选的。
--运行 CTE 的语句为:
SELECT <column_list> FROM expression_name;

即三个部分:

公用表表达式的名字(在WITH关键字之后)
查询的列名(可选)
紧跟AS之后的SELECT语句(如果AS之后有多个对公用表的查询,则只有第一个查询有效)
初心

2026-05-11 18:36:29

一、SqlServer 递归查询
1、基本概念
公用表表达式 (CTE) 可以认为是在单个 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句的执行范围内定义的临时结果集。公用表表达式可以包括对自身的引用,这种表达式称为递归公用表表达式。
http://www.cnblogs.com/sheng-jie/p/6347835.html