请教这个SQL排序,如何写
请问这个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
请问如何实现?
------解决方案--------------------
我有一个表,假设有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.