MS SQL Server递归查询

刚才在论坛上看到网友一个要求。参考如下,Insus.NET分析一下,可以使用MS SQL Server的递归查询,得到结果。

准备一张表:

根据网友提供的数据,填充此表:

下面语法在SQL Server 2014之下运行正常:

上面代码示例中,完整SQL代码:

WITH TempDeptment ([ID],[PID],[DeptName],[Conjunction]) AS
(
    SELECT [ID],[PID],[DeptName], CAST([DeptName] AS Nvarchar(1000)) FROM [dbo].[Deptment] WHERE [PID] = 0
    UNION ALL
    SELECT d.[ID], d.[PID], d.[DeptName], CAST(([Conjunction] + N‘/‘ + d.[DeptName]) AS Nvarchar(1000))    FROM TempDeptment AS td,[dbo].[Deptment] AS d WHERE td.[ID] = d.[PID]
)
SELECT [ID], [Conjunction] FROM TempDeptment

运行结果:

Insus.NET以前也没有在SQL中实现过递归,现刚好有一个实例,算是练习了。

MS SQL Server递归查询

时间: 2024-10-17 11:50:37

MS SQL Server递归查询的相关文章

MS SQL SERVER: msdb.dbo.MSdatatype_mappings & msdb.dbo.sysdatatypemappings

--SQL转Oracle/DB2的类型对应关系SELECT *FROM msdb.dbo.MSdatatype_mappings; --MS SQL SERVER更详细得显示了ORACLE/DB2各个数据库系统的类型对应SELECT *FROM msdb.dbo.sysdatatypemappings; dbms_name sql_type dest_type dest_prec dest_create_params dest_nullable DB2 bigint DECIMAL 19 3 t

MS SQL Server分析数据库的I/O性能

系统有的时候响应会明显很慢,有的时候可以是因为访问人数增加导致,有的时候可能因为数据库的磁盘I/O访问次数频繁导致.MS SQL Server提供了一些动态管理视图和函数供我们分析磁盘I/O性能. 1.sys.dm_io_virtual_file_stats SELECT DB_NAME(vfs.database_id) AS database_name , vfs.database_id , vfs.FILE_ID , io_stall_read_ms / NULLIF(num_of_read

ms sql server相关基础

在Java开发中 ms sql server 接触算是比较少的,本文记录一些ms sql server的基础知识. 1. 为表字段增加索引:create index user_openid on user(col1,col2); 删除索引:drop index users_openid on users; mysql 加索引的命令为:alter table user add index user_openid(openid) ,很容易和sql server的命令混淆. 2. win7 打开远程连

MS SQL Server2014链接MS SQL Server 2000

开发与企业应用中,好几个版本SQL Server相互链接.分布式读取与存储,需要实现sp_addlinkedserver.SQL Server 2000, SQL Server 2008, SQL Server 2012和SQL Server 2014: 但今天在本机的MS SQL Server 2014中,想添加SQL Server 2000的链接,使用下面的方法:<SQL Server创建链接服务器的一些存储过程和例子>http://www.cnblogs.com/insus/archiv

[MS SQL Server]SQL Server如何开启远程访问

在日常工作中,经常需要连接到远程的MS SQL Server数据库中.当然也经常会出现下面的连接错误. 解决方法: 1. 设置数据库允许远程连接,数据库实例名-->右键--->属性---Connections---->勾选 Allow remote connections to this server. 2. 开启TCP/IP协议: Sql Server Configuration Manager---> Protocols for SQLEXPRESS ---> TCP/I

MS SQL Server 数据库连接字符串

MS SQL Server 数据库连接字符串详解 C# 连接串设置超时时间 SqlConnection.ConnectionTimeout 与 SqlCommand.CommandTimeout 及SqlBulkCopy.BulkCopyTimeout属性 https://msdn.microsoft.com/zh-cn/library/8xx3tyca.aspx  SQL Server 连接池 (ADO.NET) http://www.docin.com/p-576271306.html 4.

MS SQL Server中的CONVERT日期格式化大全

CONVERT 函数将某种数据类型的表达式显式转换为另一种数据类型.SQL Server中 将日期格式化. SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式. 在表中,左侧的两列表示将 datetime 或 smalldatetime 转换为字符数据的 style 值.给 style 值加 100,可获得包括世纪数位的四位年份 (yyyy). 不带世纪数位 (yy) 带世纪数位 (yyyy) 标准 输入/输出** - 0 或 100 (*) 默认值 mon dd yyyy hh:

学习使用MS SQL Server游标(CURSOR)

说实的,使用MS SQL Server这样久,游标一直没有使用过.以前实现相似的功能,都是使用WHILE循环加临时表来实现.刚才有参考网上示例练习写了一下.了解到游标概念与语法.下面代码示例中,先是宣告你在游标中需使用变量,也就是临时存储处理字段的数据.2. 宣告一个游标,并SELECT需要处理的数据集.3. 打开游标(#8行代码).4. 从游标中拿来FETCH NEXT 数据给变量赋值.5. 循环@@FETCH_STATUS = 0条件.6. 在循环块,可以处理第一笔的记录逻辑了.本示例中是P

MS Sql Server 中主从库的配置和使用介绍(转)

网站规模到了一定程度之后,该分的也分了,该优化的也做了优化,但是还是不能满足业务上对性能的要求:这时候我们可以考虑使用主从库. 主从库是两台服务器上的两个数据库,主库以最快的速度做增删改操作+最新数据的查询操作:从库负责查询较旧数据,做一些对实效性要求较小的分析,报表生成的工作.这样做将数据库的压力分担到两台服务器上从而保证整个系统响应的及时性. SQL Server提供了复制机制来帮我们实现主从库的机制.我们看下如何在sql server 2005中实践: 实践前需要新创建一个Test的数据库