含义:根据一个条件的多个值进行按值排序。可以简单的理解为分组
先看例子: 查询 user 表,根据用户状态排序。状态为1的排在最前面 >其次是状态为0 >状态为4 >状态为3 >状态为2 >状态为6 >状态为
select * from user
where......
order by
case when status=1 then 0
when status=0 then 1
when status=4 then 2
when status=3 then 3
when status=2 then 4
when status=6 then 5
when status=5 then 6
else status end ,
查询结果像如下:
姓名 年龄 性别 状态
张三 15 男 1
李四 20 男 1
王五 28 男 1
赵六 10 男 0
丁一 14 男 4
刘德华 15 男 4
张爱玲 25 女 3
李世民 20 男 2
杨贵妃 22 女 6
孙悟空 15 男 6
项羽 28 男 5
如果是使用order by case when后,再根据其它条件排序,比如时间。可以看我另一篇博文:点击我进入
如还有问题可联系我