SQL Server 2005中的递归实现
来源:互联网 发布:不锈钢除味皂 知乎 编辑:程序博客网 时间:2024/06/06 00:07
WITH common_table_expression
具体用法请参考Sql2005帮助文档(ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/html/27cfb819-3e8d-4274-8bbe-cbbe4d9c2e23.htm)
指定临时命名的结果集,这些结果集称为公用表表达式 (CTE)。该表达式源自简单查询,并且在 SELECT、INSERT、UPDATE 或 DELETE 语句的执行范围内定义。该子句也可用在 CREATE VIEW 语句中,作为该语句的 SELECT 定义语句的一部分。公用表表达式可以包括对自身的引用。这种表达式称为递归公用表表达式。
语法:
[ WITH <common_table_expression> [ ,...n ] ]<common_table_expression>::= expression_name [ ( column_name [ ,...n ] ) ] AS ( CTE_query_definition )
实例:
SELECT * INTO t --载入测试数据
FROM
(
SELECT 1 AS ID,'food' AS Product,0 AS ParentID UNION ALL
SELECT 2,'sport',0 UNION ALL
SELECT 3,'drink',1 UNION ALL
SELECT 4,'ball',2 UNION ALL
SELECT 5,'fruit',1 UNION ALL
SELECT 6,'apple',5 UNION ALL
SELECT 7,'banana',5 UNION ALL
SELECT 8,'football',4 UNION ALL
SELECT 9,'basketball',4 UNION ALL
SELECT 10,'peisi',3 UNION ALL
SELECT 11,'wohaha',3
) AS a
GO
WITH ShowTree(ID,Product,ORDERBY) AS
(
SELECT ID,Product,ID FROM t WHERE ParentID=0 --固定成员
UNION ALL
SELECT t.ID,t.Product,ORDERBY*100+t.ID FROM ShowTree AS s
INNER JOIN t ON s.ID = t.ParentID
)
SELECT * FROM ShowTree ORDER BY CAST(ORDERBY AS VARCHAR(50))--OPTION(MAXRECURSION 1)
DROP TABLE t
- SQL Server 2005中的递归实现
- SQL Server 2005中的递归实现
- 利用SQL SERVER 2005 中的CTE 实现树的递归
- 利用SQL SERVER 2005 中的CTE 实现树的递归
- SQL SERVER实现递归
- SQL Server中的递归查询
- SQL Server 2005中的CTE递归查询得到一棵树
- SQL Server 2005中的CTE递归查询得到一棵树
- sql server 2005中使用with实现递归
- SQL Server 2008中的CTE递归查询
- SQL Server 中的 CTE 递归查询
- SQL Server中的CTE递归查询
- SQL SERVER与oracle中的递归处理
- SQL Server 2008中的CTE递归查询
- SQL Server 2008中的CTE递归查询
- SQL SERVER 2005 递归查询
- sql server 2000/2005递归
- Sql Server 使用CTE实现递归查询
- How to Use Design Patterns
- 精通Visual C++图象编程---读书笔记3
- RCP应用程序开发之一——新建一个rcp application例子
- linux-2.6.11内核编译笔记
- 精通Viusal C++图象编程---读书笔记2
- SQL Server 2005中的递归实现
- 精通Visual C++图象编程----读书笔记1
- 生活感悟
- 厚道
- inside com(com技术内幕)重读-摘录
- McGraw-c.程序调试使用手册----读后感
- com本质论读书笔记5-withevent背后vb6没有告诉我们的部分
- 利用组策略来防病毒
- com本质论 读书笔记(5)