sql server 2005 with如何实现递归
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 2005 with如何实现递归相关的知识,希望对你有一定的参考价值。
用SQL SERVER做递归子节点时,从网上发现很多《SQL2005使用with关键字解决递归父子关系》这样的文章,我从SQL帮助找到WITH用法,发现有点难理解,麻烦大家讲解下with的用法,下面是copy下来的语法:[ WITH <common_table_expression> [ ,...n ] ] <common_table_expression>::= expression_name [ ( column_name [ ,...n ] ) ] AS ( CTE_query_definition )
参考技术A 比如有张表,结构如下:Example(ID int,ParentID int)取其某个ID为父节点的树结构的SQL如下:WITH Example_Table(ID,ParentID)AS( --取根节点放入临时表 SELECT ID,ParentID FROM Example WHERE ID = @ID --根据已取到的数据递归取其字节点的数据 UNION ALL SELECT ID,ParentID FROM Example A INNER JOIN Example_Table B ON A.ParentID = B.ID)SELECT * FROM Example_Table 参考技术B 。。。不会SQL SERVER 之 WITH AS 递归
WITH Category_Tree AS ( SELECT Code FROM SubjectDB.Supplier.SupplierCategory WHERE Code LIKE \'0101%\' ) SELECT * FROM SubjectDB.Supplier.SupplierCategory WHERE Code IN ( SELECT * FROM Category_Tree )
查询结果:
以上是关于sql server 2005 with如何实现递归的主要内容,如果未能解决你的问题,请参考以下文章
如何转换SQL Server 2008数据库到SQL Server 2005
SQL SERVER 2005删除维护作业报错:The DELETE statement conflicted with the REFERENCE constraint "FK_subpl
SQL Server 2008 收缩日志 清空删除大日志文件