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

请问这个SQL排序,怎么写?
我有一个表,假设有3个字段,id(主键),level(层级),order(顺序)

我想得到这样的结果,

先按顺序排第一层level=1的小项,依次类推level=2......

id level order
1 1 1
2 2 1
3 2 2 
4 2 3
5 1 2
6 2 1
7 2 2 
8 2 3 

请问如何实现?

------解决方案--------------------
SQL code
select * from 表 order by [level],[order]

------解决方案--------------------
SQL code

SELECT id,level,order
FROM 表
ORDER BY level,order

------解决方案--------------------
select * from 表 order by level,order
------解决方案--------------------
select * from 表 order by id ,level,order

这个是正解
------解决方案--------------------
SQL code

select * from 表 order by level,order

------解决方案--------------------
楼主如果只是这3个字段的话,是不能确认id in(2、3、4)及(6、7、8)之间的前后关系的。
按这个表的功能应该还有一个ParentID才对。
------解决方案--------------------
按广度遍历。order by level, [order]

SQL Server 2008 有一个数据类型,hierarchyID, 处理层次表很方便。可以看一下msdn.