sql如何在排序后把特定数据显示最上面?
程序员文章站
2022-03-23 20:39:43
原因:
有数据一列数据“借出审批中”,“已借出”,“已归还”,“拒绝借用”,我显示...
原因:
有数据一列数据“借出审批中”,“已借出”,“已归还”,“拒绝借用”,我显示排序后的数据并且把状态为“已借出”的数据放在最前面,其它数据按排序规则排好。
那么我们会写select * from 表 order by 字段 (可以加desc),那么排序后的数据为:
升序 降序
借出审批中 拒绝借用
已借出 已归还
已归还 已借出
拒绝借用 借出审批中
排序后我们发现不管怎样排序“已借出”都不可能在最前面。
解决:
selec * from 表 order by case when 字段='已借出' then 0 else 1 end
解释:
case when 字段='已借出' then 0 else 1 end 判断字段是否等于"已借出",如果是返回0否则返回1(可嵌套判断)
效果:
已借出 拒绝借用 借出审批中 已归还
上一篇: Mysql数据库操作常用命令(最新)