使用公用表表达式的递归查询
微软从SQL2005起引入了CTE(Common Table Expression)以强化T-SQL。 公用表表达式 (CTE) 具有一个重要的优点,那就是能够引用其自身,从而创建递归 CTE。递归 CTE 是一个重复执行初始 CTE 以返回数据子集直到获取完整结果集的公用表表达式。 当某个查询引用递
微软从SQL2005起引入了CTE(Common Table Expression)以强化T-SQL。 公用表表达式 (CTE) 具有一个重要的优点,那就是能够引用其自身,从而创建递归 CTE。递归 CTE 是一个重复执行初始 CTE 以返回数据子集直到获取完整结果集的公用表表达式。 当某个查询引用递归 CTE 时,它即被称为递归查询。递归查询通常用于返回分层数据,例如:显示某个组织图中的雇员或物料清单方案(其中父级产品有一个或多个组件,而那些组件可能还有子组件,或者是其他父级产品的组件)中的数据。 递归 CTE 可以极大地简化在 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句中运行递归查询所需的代码。在 SQL Server 的早期版本中,递归查询通常需要使用临时表、游标和逻辑来控制递归步骤流。有关公用表表达式的详细信息,请参阅使用公用表表达式。 伪代码和语义 ———————————————————————————— 递归 CTE 结构必须至少包含一个定位点成员和一个递归成员。以下伪代码显示了包含一个定位点成员和一个递归成员的简单递归 CTE 的组件。 WITH cte_name ( column_name [,...n] ) AS ( CTE_query_definition –- Anchor member is defined. UNION ALL CTE_query_definition –- Recursive member is defined referencing cte_name. ) -- Statement using the CTE SELECT * FROM cte_name 递归执行的语义如下:
|
上一篇: 忘记mysql密码如何修改
下一篇: PHP加载远道XML出错?
推荐阅读
-
关于SQL中CTE(公用表表达式)(Common Table Expression)的总结
-
Sql学习第三天——SQL 关于CTE(公用表达式)的递归查询使用
-
MySql中使用正则表达式查询的方法
-
使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法
-
SQLserver2008使用表达式递归查询
-
ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效怎么解决?
-
sql server使用公用表表达式CTE通过递归方式编写通用函数自动生成连续数字和日期
-
C#使用LINQ查询表达式的基本子句总结
-
使用CTE公用表表达式的递归查询(WITH AS)
-
SQL Server 公用表表达式(CTE)实现递归的方法