循环查询sql server(SQL Server 树形表非循环递归查询的实例详解)
类别:数据库 浏览量:929
时间:2022-01-28 01:37:12 循环查询sql server
SQL Server 树形表非循环递归查询的实例详解很多人可能想要查询整个树形表关联的内容都会通过循环递归来查...事实上在微软在SQL2005或以上版本就能用别的语法进行查询,下面是示例。
--通过子节点查询父节点 WITH TREE AS( SELECT * FROM Areas WHERE id = 6 -- 要查询的子 id UNION ALL SELECT Areas.* FROM Areas, TREE WHERE TREE.PId = Areas.Id ) SELECT Area FROM TREE --通过父节点查询子节点 WITH TREE AS( SELECT * FROM Areas WHERE id = 7 -- 要查询的子 id UNION ALL SELECT Areas.* FROM Areas, TREE WHERE TREE.Id = Areas.PId ) SELECT Area FROM TREE
通过子节点查询父节点查询结果为:
修改代码为
--通过子节点查询父节点 declare @area varchar(8000); WITH TREE AS( SELECT * FROM Areas WHERE id = 6 -- 要查询的子 id UNION ALL SELECT Areas.* FROM Areas, TREE WHERE TREE.PId = Areas.Id ) select @area=isnull(@area,'')+Area from Tree order by id select Area= @area
则结果为:中国北京市丰台区
根据以上可以将这段代码封装为一个存储过程
-----存储过程,递归获取树形地区表字符串 if exists (select * from sysobjects where name='SP_GetAreaStr') drop proc SP_GetAreaStr go create procedure SP_GetAreaStr @id int as declare @area varchar(8000) begin WITH TREE AS( SELECT * FROM Areas WHERE id = @id -- 要查询的子 id UNION ALL SELECT Areas.* FROM Areas, TREE WHERE TREE.PId = Areas.Id ) select @area=isnull(@area,'')+Area from Tree order by id select Area= @area end go --exec sp_helptext 'SP_GetAreaStr' --go exec SP_GetAreaStr 28 go
查询结果:中国安徽省宿州市灵璧县
所用表结构:
部分数据:
以上所述是小编给大家介绍的SQL Server 树形表非循环递归查询的实例详解的相关知识,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
您可能感兴趣
- mysql数据字段默认值怎么设置(MySQL 字段默认值该如何设置)
- SQL中not in有Null值时
- mysql写入效率越来越差(MYSQL大量写入问题优化详解)
- mysql各种锁详解(MySQL 查看事务和锁情况的常用语句分享)
- mysql的存储方法(MySQL中的binary类型使用操作)
- mysql用什么类型数据(MySQL 数据类型选择原则)
- sqlserver常用配置调整(sql server性能调优 I/O开销的深入解析)
- mysql复合索引会包含哪些索引(MySQL查询冗余索引和未使用过的索引操作)
- mysql冷热数据分离方案(MySQL中使用流式查询避免数据OOM)
- mysql全套优化(Mysql优化神器推荐)
- SQL SERVER与MySQL数据类型的对应关系
- sql语言运算符主要内容(详解SQL EXISTS 运算符)
- mysql哪个版本可以下载msi(新手必备之MySQL msi版本下载安装图文详细教程)
- cent os7.0 安装mysql(mysql8.0.23 linuxcentos7安装完整超详细教程)
- sqlserver实现登录注册(Sqlserver创建用户并授权的实现步骤)
- mysql架构方案讲解(MySQL 搭建MHA架构部署的步骤)
- 追连续剧,品古今联4 明代三杨,联妙诗佳(追连续剧品古今联4)
- 三杨 共辅四朝帝王,构建明帝国内阁行政圈(三杨共辅四朝帝王)
- 红色文化进国企(红色文化进国企)
- 车友的选择| 轮毂该如何选(车友的选择轮毂该如何选)
- 秦海璐炫耀和王新军热恋蜜事,不料对方吐槽她吃饱后肚子撅老高(秦海璐炫耀和王新军热恋蜜事)
- 秦海璐一袭旗袍惹人倾心,将高级与淡雅展现的游刃有余(秦海璐一袭旗袍惹人倾心)
热门推荐
- $(document).ready和window.onload的区别
- Html5新增的标签
- CSS3 transition过渡效果
- 织梦列表页调用文章简介不显示(织梦文章系统修改专题文章列表的模板的方法)
- docker 退出容器详解(Docker 使用nsenter工具进入容器的操作)
- php执行语句(PHP goto语句用法实例)
- thinkphp返回json(thinkphp5框架实现数据库读取的数据转换成json格式示例)
- Uncaught TypeError: jQuery.handleError is not a function
- linux如何进入makefile(linux中无make命令的问题make: *** 没有指明目标并且找不到 makefile及make命令安装方)
- mysql的默认隔离级别(再有人问你MySQL的隔离级别是什么,就把这篇文章发给他!)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9