sql 子级菜单排序问题

sbcnn1 2016-05-25 07:03:46
表1
id reid Name
1 0 菜单1
2 1 菜单2
3 0 菜单3
3 1 菜单4
如果直接查询 是1 2 3 4
我想把菜单1下面的 归到菜单1下面
例如 1 2 4 然后再 3
...全文
182 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2016-05-25
  • 打赏
  • 举报
回复
中国风 2016-05-25
  • 打赏
  • 举报
回复
use Tempdb
go
--> --> 
 
if not object_id(N'Tempdb..#1') is null
	drop table #1
Go
Create table #1([id] int,[reid] int,[Name] nvarchar(23))
Insert #1
select 1,0,N'菜单1' union all
select 2,1,N'菜单2' union all
select 3,0,N'菜单3' union all
select 4,1,N'菜单4'
GO
;WITH Cte
AS
(
Select *,ord=CAST(RIGHT(1000+id,3) AS VARCHAR(50)) from #1 WHERE reid=0
UNION ALL
SELECT a.*,ord=CAST(b.ord+RIGHT(1000+a.id,3)AS VARCHAR(50)) FROM #1 AS a INNER JOIN Cte AS b ON b.ID=a.reid
)
SELECT [id],[reid],[Name] FROM Cte ORDER BY ord
/*
id	reid	Name
1	0	菜单1
2	1	菜单2
4	1	菜单4
3	0	菜单3
*/
卖水果的net 2016-05-25
  • 打赏
  • 举报
回复
参考一下这个,和你这个需求一样; http://bbs.csdn.net/topics/391957584?page=1#post-401184133
kingtiy 2016-05-25
  • 打赏
  • 举报
回复


--试下两字段排序
order by id,reid 

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧