sql 子级菜单排序问题

问题描述

sql 子级菜单排序问题

表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

解决方案

递归排序下,google下代码很多

解决方案二:

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
*/
在此贴已回复
http://bbs.csdn.net/topics/391957553

解决方案三:

http://blog.csdn.net/pdn2000/article/details/6674243
递归

时间: 2024-10-10 18:47:58

sql 子级菜单排序问题的相关文章

代码-点击父级菜单 显示子菜单问题

问题描述 点击父级菜单 显示子菜单问题 function chg() { var imgs = document.getElementByTagName("img"); var ul = document.getElementById("parent"); var lis = ul.getElementsByTagName("li"); for (var i = 0; i < lis.length; i++) { var childUL =

MFC 对话框中动态创建N级菜单以及响应事件

创建一个基于对话框的工程,工程名为CreateMenu 为该对话框增加一个文件菜单项和测试菜单项,如下图所示   测试菜单项至少要有一个子菜单项 在对话框属性中关联该菜单 在resource.h中增加一个ID_TESTMENU宏 #define ID_TESTMENU          5000   在对话框中添加一个Button按钮,建立消息映射,编辑代码如下 void CCreateMenuDlg::OnButton1() { // TODO: Add your control notifi

瀑布流-关于CSS子级float,父级高度变化的问题

问题描述 关于CSS子级float,父级高度变化的问题 网页结构说明: <body> <div id="header">...</div> <div id="main"> <div id="left" class="fleft">...</div> <div id="middle" class="fleft"&

jpql排序问题-jpql 通过子查询结果排序问题

问题描述 jpql 通过子查询结果排序问题 jpql 怎么将子查询结果作为排序条件 比如 sql语句:select u.id,u.account,u.name,(select COUNT(m) from Usermessage m where m.userid=u.id and m.isreaded=0) AS aa from Memberuser u ORDER BY aa DESC 这样给他起个别名"aa"完全可以,但是这样在jpql里就不行,老是识别不了aa,jpql是通过实体类

递归显示treeView 第一级为00 第一级的子级为0000

问题描述 递归显示treeView第一级为00第一级的子级1为0000第一级的子级2为0001第二级为01第二级子级为0100如此推算下去:以下是其他方式显示的目录树代码,我需要改成如我上面要求的那种方式显示,那位大师指点一下呀,多谢了.效果如此图[img=http://t2.qpic.cn/mblogpic/24d4bc9945a2faf46998/460][/img]privatevoidgettreeview(){stringconstr="DataSource=(local);DataB

sql子查询中列别名在主查询中无效

问题描述 sql子查询中列别名在主查询中无效 CREATE PROCEDURE dbo.query_test( @i_begin_time varchar(128) IN, /* 开始时间 / @i_end_time varchar(128) IN, / 结束时间 / @i_bussiness_tpe varchar(512) IN, / 类型 ) as declare @v_sql varchar(16384)/* 定义 需要执行的sql / declare @Rtime varchar(12

SQL子查询实例

  SQL子查询实例介绍: 子查询是在一个查询内的查询.子查询的结果被DBMS使用来决定包含这个子查询的高级查询的结果.在子查询的最简单的形式中,子查询呈现在另一条SQL语句的WHERE或HAVING子局内. 列出其销售目标超过各个销售人员定额综合的销售点. SELECT CITY FROM OFFICES WHERE TARGET > (SELECT SUM(QUOTA) FROM SALESREPS WHERE REP_OFFICES = OFFICE) SQL子查询一般作为WHERE子句或

js与jquery获取父级元素,子级元素,兄弟元素的实现方法

 本篇文章主要是对js与jquery获取父级元素,子级元素,兄弟元素的实现方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比   JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素   原生的JS获取ID为test的元素下的子元素.可以用:   比如:   <div id="dom">     <div></d

JS获取节点的兄弟,父级,子级元素的方法

 本篇文章主要是对JS获取节点的兄弟,父级,子级元素的方法进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比.   JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素  代码如下: <div id="test"> <div></div> <div></div> </div&