select * from 表名 where 条件 order by case when xxx then 1 when xxx then 2 when xxx then 3 else 4 end
按照特定条件对结果进行排序:
举例:
select * from t_student where stu_id=1001 and stu_name='zhangsan'
order by case when stu_course='语文课' then 1 when stu_course='数学课' then 2
when stu_course='物理课' then 3 else 4 end
假设这个学生只有语文课,数学课,物理课,英语课
那么此sql意思就是对zhangsan的课程进行自定义排序,语文课排第一,数学课第二,物理课第三,英语课第四。
stu_id | stu_name | stu_calss |
1001 | 张三 | 语文 |
1001 | 张三 | 数学 |
1001 | 张三 | 物理 |
1001 | 张三 | 英语 |