sql server实现递归查询的方法示例

本文实例讲述了sql server实现递归查询的方法示例。分享给大家供大家参考,具体如下:

有时候面对树结构的数据时需要进行递归查询,网上找了一番,参考了各位大神的文章,发现蛮简单的,当做个小笔记方便以后使用

sql server 通过CTE来支持递归查询,这对查询树形或层次结构的数据很有用

一般的树形表结构如下,相信大家都很熟悉的

id title pid 1 1级节点 0 2 2级节点 1 3 3级节点 2 4 4级节点 3 5 5级节点 4

下面上代码

----------sql server 递归查询---------- --查找上级所有节点 with uCte as ( select a.id,a.title,a.pid from tree_table a where id = 3--当前节点 union all select k.id,k.title,k.pid from tree_table k inner join uCte c on c.pid = k.id ) select * from uCte; --查找上级所有节点 with dCte as ( select a.id,a.title,a.pid from tree_table a where id = 3--当前节点 union all select k.id,k.title,k.pid from tree_table k inner join dCte c on c.id = k.pid ) select * from dCte;

更多关于SQL Server相关内容感兴趣的读者可查看本站专题:《SQL Server查询操作技巧大全》、《SQL Server存储过程技巧大全》、《SQL Server索引操作技巧大全》、《SQL Server常用函数汇总》及《SQL Server日期与时间操作技巧总结》

希望本文所述对大家SQL Server数据库程序设计有所帮助。

时间: 2024-09-20 05:31:11

sql server实现递归查询的方法示例的相关文章

SQL Server进行递归查询实现方法

以表Deparment为例 表结构为: Id 部门内码, DeptCode 部门编码, ParentDeptId 上级部门内码 使用T-SQL:  代码如下 复制代码 with Dep as (     select Id,DeptCode,DeptName from Department where Id=1     union all     select d.Id,d.DeptCode,d.DeptName from Dep     inner join Department d on d

用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接 的解决方法

用户 'sa' 登录失败.原因: 未与信任 SQL Server 连接 的解决方法如下: 一.控制面板->服务->MS SQL SERVER->登陆-->本地系统帐户-->重新启动MS SQL SERVER用windows验证登陆查询分析器-->执行 sp_password null,sa新密码,'sa' 二."无法连接到服务器,用户xxx登陆失败"该错误产生的原因是由于SQL Server使用了"仅 Windows"的身份验证方

asp连接SQL server数据库二种方法

asp教程连接sql server数据库教程二种方法 本教程主要是讲了asp与mssql server 数据库的两种不同的连接方法,主要是讲sql server连接方法与sql server ole db连接方法. sql server连接方法: set adocon=server.createobject("adodb.recordset") adocon.open"driver={sql server};server=(local);uid=***;pwd=***;&qu

1. SQL Server服务器监控实现方法

原文:1. SQL Server服务器监控实现方法 对于服务器的监控,和对数据库的监控,很少有合二为一的工具,如果有的话,一般是付费软件,或者自行开发的工具.所以如果不想购买软件,也不想花精力去开发的话,可以结合一些免费/开源的工具.自定义脚本,来完成对数据库服务器的监控. 一. 第三方工具1. 开源工具比如:CACTI,Nagios,Zabbix等等,除了主机外,对于网络上的其他设备,比如路由器等也可以一并监控.以CACTI为例(CACTI可以在windows下安装),服务器监控的图示:(1)

php使用sql server验证连接数据库的方法_php技巧

本文实例讲述了php使用sql server验证连接数据库的方法.分享给大家供大家参考.具体分析如下: 当您连接到 SQL Server 时,SQL Server Driver for PHP 支持 SQL Server 身份验证,在使用 SQL Server 身份验证连接到 SQL Server 时必须考虑以下几点. 必须对服务器启用 SQL Server 混合模式身份验证,在尝试建立连接时必须设置 UID 和 PWD 连接属性,UID 和 PWD 必须映射到有效的 SQL Server 用户

五种SQL Server分页存储过程的方法及性能比较_MsSql

在SQL Server数据库操作中,我们常常会用到存储过程对实现对查询的数据的分页处理,以方便浏览者的浏览.本文我们总结了五种SQL Server分页存储过程的方法,并对其性能进行了比较,接下来就让我们来一起了解一下这一过程. 创建数据库data_Test : create database data_Test GO use data_Test GO create table tb_TestTable --创建表 ( id int identity(1,1) primary key, userN

彻底删除SQL Server注册表的方法_MsSql

一般在卸载完数据库时,大家都希望能够将注册表信息完全删干净,下面就将教您彻底删除SQL Server注册表的方法,供您参考. 在卸载SQL Server开始--运行:输入regedit 进入注册表编辑器,进入之后执行下列操作: 1.彻底删除SQL Server: hkey_local_machine\software\Microsoft\MSSQLServer hkey_local_machine\software\Microsoft\Microsoft SQL Server hkey_curr

sql server实现分页的方法实例分析

本文实例讲述了sql server实现分页的方法.分享给大家供大家参考,具体如下: declare @index int,@num int set @index = 1--当前页 set @num = 2--单页包含的行数 --分页1 select top (@num) * from ppohd where doccode not in ( select top (@num * (@index -1)) doccode from ppohd order by doccode ) order by

五种SQL Server分页存储过程的方法及性能比较

在SQL Server数据库操作中,我们常常会用到存储过程对实现对查询的数据的分页处理,以方便浏览者的浏览.本文我们总结了五种SQL Server分页存储过程的方法,并对其性能进行了比较,接下来就让我们来一起了解一下这一过程. 创建数据库data_Test : create database data_Test GO use data_Test GO create table tb_TestTable --创建表 ( id int identity(1,1) primary key, userN