创建表语句
CREATE TABLE ProductInfo(
Id int IDENTITY(1,1) NOT NULL,
ParentId int NULL,
Title nvarchar](255),
Code nvarchar(100) ,
State int NULL,
...
...
...
Memo text COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT PK_ProductInfo PRIMARY KEY CLUSTERED
递归查询语句
WITH ProductCTE AS (
--> 一个定位点成员
SELECT
Id,
ParentId,
ProductNum,
GiveNum,
Title,
CAST(Title AS nvarchar(MAX)) AS TE,
CAST('' AS nvarchar(50)) AS ParentTitle,
Code,
ROW_NUMBER() OVER (ORDER BY getdate()) AS OrderID
FROM
ProductInfo
WHERE
(StructID = 5)
UNION ALL
-->一个递归成员
SELECT
a.Id,
a.ParentId,
a.ProductNum,
a.GiveNum,
a.Title,
CAST(REPLICATE(' ', LEN(cte.TE)) + '|-' + a.Title AS nvarchar(MAX)) AS TE,
CAST(cte.Title AS nvarchar(50)) AS ParentTitle,
a.Code,
cte.OrderID * 100 + ROW_NUMBER() OVER (ORDER BY GETDATE()) AS OrderID
FROM
ProductCTE AS cte
INNER JOIN
ProductInfo AS a ON cte.ID = a.ParentID)
SELECT
Id,
ParentId,
ProductNum,
GiveNum,
Code,
TE,
Title,
ParentTItle,
OrderID
FROM
ProductCTE AS cteAll
ORDER BY
LTRIM(orderID) ASC
查询结果
分享到:
相关推荐
详细描述在sqlserver 2005 中通过使用CTE 实现递归的方法
SQL Server 2005 杂谈 公用表表达式 CTE 递归调用 doc SQL Server 2005 杂谈 公用表表达式 CTE 递归调用 doc
insert into dbo.hierarchy values(1,0,'河南省') ,(2,1,
递归CTE是SQL SERVER 2005中重要的增强之一。一般我们在处理树,图和层次结构的问题时需要用到递归查询...本文给大家详解使用sqlserver cte递归查询出来树、图和层次结构,本文介绍的非常详细,感兴趣的朋友一起看看吧
sql server 通过CTE来支持递归查询,这对查询树形或层次结构的数据很有用 一般的树形表结构如下,相信大家都很熟悉的 id title pid 1 1级节点 0 2 2级节点 1 3 3级节点 2 4 4级节点 3 5 5级节点 4 ...
本书及其续篇——《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》介绍了SQL Server 2005中高级T-SQL查询、查询优化及编程相关的知识。这两本书侧重于解决实践中的常见问题,并讨论了解决这些问题的方法。它们...
sql查询tree树,使用的是cte 递归!
代码如下:–由父项递归下级 with cte(id,parentid,text) as (–父项 select id,parentid,text from treeview where parentid = 450 union all –递归结果集中的下级 select t.id,t.parentid,t.text from treeview as...
下面是一个简单的Family Tree 示例: 代码如下: DECLARE @TT TABLE (ID int,Relation varchar(25),Name varchar(25),ParentID int) INSERT @TT SELECT 1,’ Great GrandFather’ , ‘Thomas Bishop’, null UNION ...
主要介绍了SQL Server 公用表表达式(CTE)实现递归的方法,需要的朋友可以参考下
例如,现在需要查询出西湖区以及西湖区所属的市和省,这时候就需要用到SQL递归查询。我在这里构造了一张数据表[tb_Test],其数据如下所示: Id Name ParentId 1 浙江省 NULL 2 杭州市 1 3 湖州市 1 4 滨江区 2 ...
MSSQLSERVER递归查询CTE,以一个实例详细介绍CTE的初始查询、递归查询、终止条件并分步骤图文并茂的进行讲解
CTE是在内存中准备好数据,而不是每次一条往返服务器和客户端一次。如果需要再插入到临时表...这篇文章主要介绍了sql server使用公用表表达式CTE通过递归方式编写通用函数自动生成连续数字和日期 ,需要的朋友可以参考下
SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式 百度百科 公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它。每个CTE仅被定义一次(但在其作用域内可以被...
关于使用CTE(公用表表达式)的递归查询—-SQL Server 2005及以上版本 公用表表达式 (CTE) 具有一个重要的优点,那就是能够引用其自身,从而创建递归 CTE。递归 CTE 是一个重复执行初始 CTE 以返回数据子集直到获取...
SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式 公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它。每个CTE仅被定义一次(但在其作用域内可以被引用任意...