sql无限级树型查询
2024-09-04 18:23:20
表结构如下:
表数据如下:
一提到无限级,很容易想到递归,使用sql 的CET语法如下
with menu(Id,Name,ParentId,Level)
as
(
select Id,Name,ParentId,0 as Level from dbo.Category where ParentId is Null
Union All
Select A.Id,A.Name,A.ParentId,B.Level+1 from dbo.Category A inner join menu B
on A.ParentId=B.Id
)
select * from menu order by Id
查询结果如下图:
看到这样的结果,大失所望,继续修改查询语句
with menu(Id,Name,ParentId,Level,px,px2)
as
(
select Id,Name,ParentId,0 as Level,Id px, cast(Id as nvarchar(4000)) px2 from dbo.Category where ParentId is Null
Union All
Select A.Id,A.Name,A.ParentId,B.Level+1 ,B.px,B.px2+ltrim(A.Id) from dbo.Category A inner join menu B
on A.ParentId=B.Id
)
select * from menu order by px,px2
再看一下运行结果:
最新文章
- bzoj1723--前缀和(水题)
- EnjoyCSS – 在线的,先进的 CSS3 代码生成器
- 【原创】Kakfa metrics包源代码分析
- linux下mysql命令
- windows8.1 下搭建配置apache+php+mysql
- MyBatis 注解
- 操作数组的工具类Arrays
- 全面总结:matlab怎么做漂亮的图
- Linux开机启动(bootstrap)下
- linux-more
- 开源项目Git地址
- java FTPClient 上传文件 0kb 问题
- 关于 No buffer space available (maximum connections reached?): connect 的处理
- USACO 2012 December ZQUOJ 24128 Wifi Setup(动态dp)
- HTTP协议对URI长度,POST数据长度及COOKIE长度限制说明
- kubernetes 创建tomcat 容器
- E - More is better (并查集)
- 项目-高性能TcpServer - 目录
- LightOJ 1089 - Points in Segments (II) 线段树区间修改+离散化
- [NC13A]反蝴蝶效应/[SPOJ-NPC2014D]General Joke
热门文章
- 【前端学习笔记】2015-09-09~~~~nodejs中的require()和module.exports
- MGW——美团点评高性能四层负载均衡
- bzoj 3924 幻想乡战略游戏
- 【Vijos1222】等值拉面(DP)
- linux信号------探步
- Toast问题记录:This Toast was not created with Toast.makeText()
- 牛客网 牛客小白月赛1 C.分元宵-快速幂
- 第4章 使用 Spring Boot
- Codeforces 471 D MUH and Cube Walls
- 奇酷手机显示Log