需求描述:将已接收状态排序到最后
数据库字段:status (0未接收,1已接收,2已退回)
分析:常用的asc/desc已经不能满足
因此采用:order by case when x=1 then r1 when x=2 then r2 else x end
例如:
select
t.status
from tablet t
ORDER BY
CASE
WHEN t.STATUS = 1 THEN
7
WHEN t.STATUS = 2 THEN
6
WHEN t.STATUS = 0 THEN
5
WHEN t.STATUS = 3 THEN
4
ELSE
t.STATUS
END
本文介绍了一种使用SQL的CASE WHEN语句进行复杂排序的方法,通过给定不同状态的优先级,可以实现将特定状态如“已接收”排序到最后的需求。这种方法超越了基本的ASC和DESC排序,适用于需要自定义排序规则的场景。

614

被折叠的 条评论
为什么被折叠?



