数据:
studenNo | studentName | classNo | className |
2018140101 | 张三 | 1401 | 14级一班 |
2018140111 | 孙一 | 1402 | 14级二班 |
2018140121 | 李二 | 1402 | 14级二班 |
2018140102 | 钱一 | 1401 | 14级一班 |
2018140104 | 赵一 | 1401 | 14级一班 |
2018140123 | 周一 | 1402 | 14级二班 |
目标:按班按学号分组排序
实现过程:
设置变量存储班级号,同一班级号,rownum递增,否则,rownum为1
SELECT
IF (
@classno = a.classNo ,@rownum :=@rownum + 1 ,@rownum := 1
) AS rownum,@classno:=a.classNo,
a.*
FROM
stu_class_rel a,
(
SELECT
@rownum := 0 ,@classno := NULL
) b
ORDER BY a.classNo,a.studenNo ASC
sql运行结果:
rownum | @classno:=a.classNo | studenNo | studentName | classNo | className |
1 | 1401 | 2018140101 | 张三 | 1401 | 14级一班 |
2 | 1401 | 2018140102 | 钱一 | 1401 | 14级一班 |
3 | 1401 | 2018140104 | 赵一 | 1401 | 14级一班 |
1 | 1402 | 2018140111 | 孙一 | 1402 | 14级二班 |
2 | 1402 | 2018140121 | 李二 | 1402 | 14级二班 |
3 | 1402 | 2018140123 | 周一 | 1402 | 14级二班 |
@identify --取值;@identify:= --赋值