日期:2014-05-18  浏览次数:20449 次

求一SQL语句排序问题
先看数据表:
---------------------------------------
0 首頁 0
1 0,1 通知 1
2 0,2 公告 0
3 0,3 通報 0
4 0,1,4 內部通知 1
5 0,1,5 外部通知 0
6 0,2,6 內部公告 0
7 0,2,7 外部公告 1
---------------------------------------
0,1表示通知是首页下的,那么0,1,4就是首页》通知》内部通知     这样的
现在我想通过一个查询语句实现查询的结果是:
---------------------------------------
0                             首页             0
2         0,2             公告             0
6         0,2,6       内部公告     0
7         0,2,7       外部公告     1
3         0,3             通报             0
1         0,1             通知             1
4         0,1,4       内部通知     0
5         0,1,5       外部通知     0
------------------------------------------
也就是达到一个同级排序的目的,先排大类,再排小类,没有包含关系的大类和小类之间没有排序关系
请问这个sql怎么写,急!     今天要我做出来


------解决方案--------------------
就是一棵树,这样的数据集可以用递归得到。
或者,直接用Order by path 试试,应该可以的。
------解决方案--------------------
id ord resume
---------------------------------------
0 首頁 0
1 0,1 通知 1
2 0,2 公告 0
3 0,3 通報 0
4 0,1,4 內部通知 1
5 0,1,5 外部通知 0
6 0,2,6 內部公告 0
7 0,2,7 外部公告 1
---------------------------------------

SELECT * FROM [yourTable] ORDER BY [ord] ASC

------解决方案--------------------
如果我没理解错楼主的意思一个简单的ORDER BY就OK了,不要把问题想的复杂化.

原始数据:

id ord resume
------------------------------
0 0 首页
1 0,1 通知
2 0,2 公告
3 0,3 通报
4 0,1,4 内部通知
5 0,1,5 外部通知
6 0,2,6 内部公告
7 0,2,7 外部公告

查询结果:
----------------------------
id ord resume
0 0 首页
1 0,1 通知
4 0,1,4 内部通知
5 0,1,5 外部通知
2 0,2 公告
6 0,2,6 内部公告
7 0,2,7 外部公告
3 0,3 通报