sql之多条件排序

使用case when else end语句

需求:有一个student表,有id,name,age等字段,要求对student表排序,name包含'夏日'的最前显示,age=1的次之,并且按照id升序排序

范例:

select
*
from
student
ORDER BY
CASE                                                 
WHEN name LIKE'%夏日%' THEN 1 ===>名字包含'夏日'的顺序权重为1(此处意为数字越小权重越大)
WHEN age=1 THEN 2                       ===>年龄为1的顺序权重为2
ELSE 3 END,                                     ===>其他情况的顺序权重为3,此句为结束语句
id
asc                                                      ===>按照id升序排序,此排序规则权重最低

posted @ 2021-02-20 09:25  炙热c  阅读(299)  评论(0)    收藏  举报