创建表语句
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
查询结果
分享到:
相关推荐
总结来说,SQL Server的CTE递归查询是一种高效且灵活的方法,能够有效地处理层次结构数据。理解其工作原理和正确使用方式对于数据库开发人员来说至关重要,能帮助他们在处理树状数据结构时游刃有余。
### SQL Server 2005 中使用 CTE 实现递归 #### 一、CTE 递归原理 在 SQL Server 2005 中,使用公共表表达式(Common Table Expression, CTE)实现递归是一种高效且直观的方式。递归 CTE 通常由两部分构成:定位...
通过以上分析可以看出,在SQL Server 2008中使用CTE进行递归查询是一种高效且易于理解的方法。通过定义基础情况和递归规则,可以轻松地获取所有上级或下级数据。然而,在实际应用过程中,还需要综合考虑性能等因素,...
本文主要介绍了 SQL Server 2005 中公用表表达式(CTE)的递归调用,用于解决树型结构数据的查询问题。CTE 是 SQL Server 2005 中的一种新的查询方式,它可以简化复杂的查询过程。 在本文中,我们使用一个树型结构...
总的来说,使用SQL Server的CTE递归查询可以帮助我们有效地处理树形和层次结构数据,简化复杂查询的编写,同时保持代码的可读性和高性能。在设计数据库查询时,理解并掌握递归CTE的使用,对于处理具有层次关系的数据...
在SQL Server中,公共表表达式(Common Table Expression,简称CTE)是一种非常有用的查询构造,它可以临时定义一个结果集,然后在这个结果集的基础上进行进一步的查询操作。CTE不仅可读性强,而且有助于简化复杂的...
在SQL中,递归查询是一种强大的工具,常用于处理层级数据,例如组织结构、树形菜单等。在给定的场景中,我们需要根据一个特定的节点ID查询出该节点及其所有子节点,并将这些结果存储在一个临时表中。以下是实现这一...
SQL Server 2005 Beta 2带来了对Transact-SQL的显著增强,这些改进主要集中在提升查询表达能力、数据完整性(DRI)支持、性能优化以及错误处理方面。以下是对这些增强功能的详细说明: 1. **排序函数**: SQL ...
SQL Server 2005对T-SQL进行了扩展,添加了新的语法元素和函数,如窗口函数(OVER子句)、公用表表达式(CTE)、递归查询以及WITH关键字。这些功能使得复杂的数据处理和分析变得更加高效。 2. **存储过程和触发器*...
在SQL Server 2008中,表达式递归查询是一种强大的工具,尤其适用于处理具有层级关系的数据,如组织结构、目录树或者分类系统。这种技术主要依赖于公用表表达式(Common Table Expression, CTE),它允许在单个查询...
总结来说,SQL Server 2005/2008的递归CTE是一个强大的工具,它能有效地处理树型结构数据的查询,帮助我们构建和理解复杂的层次关系。通过本文中的Family Tree实例,我们了解了如何定义递归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 Server 2005及以后版本引入了公用表表达式(CTE,Common Table Expression)来支持递归查询,这极大地简化了处理这类问题的方式。 公用表表达式是一个在查询语句中定义的临时结果集,它可以在FROM子句中被多次...
而SQL Server 2005引入的CTE(Common Table Expression,公用表表达式)提供了一种更简洁有效的方式,利用递归查询特性来处理层级数据。 CTE提供了一种可以引用自己的查询结果集的方法,它是一个临时命名的结果集,...
sql查询tree树,使用的是cte 递归!
根据提供的信息,我们可以深入探讨如何使用SQL递归查询来获取所有属于特定`upperid`的数据及其子树。这里的关键在于理解递归查询的工作原理,并通过一个具体的例子来演示这一过程。 ### SQL递归查询概念 在关系型...