2023年6月27日发(作者:)
SQLSERVER递归查询(3)——分组递归 有时候我们需要按照分组递归查询,⽐如省市区,同⼀个省同⼀个市的要放到⼀起显⽰,⽽我们原始数据⼜不是这样排列的,所以需要我们做⼀下处理,测试数据:--测试数据if not object_id(N'Tempdb..#T') is null drop table #TGoCreate table #T([Id] int,[Name] nvarchar(24),[FatherId] int)Insert #Tselect 1,N'河北省',0 union allselect 2,N'陕西省',0 union allselect 3,N'⽯家庄市',1 union allselect 4,N'桥东区',3 union allselect 5,N'唐⼭市',1 UNION allselect 6,N'西安市',2 UNION allselect 7,N'雁塔区',6Go--测试数据结束 利⽤CTE的写法,来实现分组递归查询的功能,查看代码如下:;WITH t AS ( SELECT * , CAST(RIGHT('000' + CAST([Id] AS VARCHAR), 3) AS VARCHAR(MAX)) AS sort FROM #T WHERE [FatherId] = 0 UNION ALL SELECT #T.* , CAST(sort + RIGHT('000' + CAST(#T.[Id] AS VARCHAR), 3) AS VARCHAR(MAX)) FROM t INNER JOIN #T ON = #Id )SELECT Id,Name,FatherId FROM t ORDER BY sort
结果: 以上实现了递归并分组显⽰的需求。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1687817589a47743.html
评论列表(0条)