求一个sql排序语句
表是这样的
id class name
1 数学 张一
2 音乐 陈一
3 数学 旺旺
4 语文 地方
5 英语 流程
6 语文 地方
7 音乐 的我
8 数学 风格
9 语文 和你
10 语文 二位
...
...
...
class为课程
name为学生
学生比较多,那么会有一定概率出现连续2个以上的class是一样的,比如记录9和10
现在想实现的是一个排序避免这种连续的class情况,当然最理想的情况是按class字段group之后,依次显示
如class字段group之后,里面包含数学、音乐、语文、英语
效果图
id class name
1 数学 张一
2 音乐 陈一
4 语文 地方
5 英语 流程
3 数学 旺旺
7 音乐 的我
6 语文 地方
8 数学 风格
9 语文 和你
10 语文 二位
...
...
...
------解决方案--------------------;with maco as
(
select ROW_NUMBER() over (partition by class order by name) as num, * from @t
)
select id,class,name from maco order by num,name
这样也可以