电脑疯子技术论坛|电脑极客社区

 找回密码
 注册

QQ登录

只需一步,快速开始

[编程和数据库] sql如何在排序后把特定数据显示最上面?

[复制链接]
zhaorong 发表于 2018-2-1 12:18:23 | 显示全部楼层 |阅读模式

原因:

有数据一列数据“借出审批中”,“已借出”,“已归还”,“拒绝借用”,
我显示排序后的数据并且把状态为“已借出”的数据放在最前面,其它数据按排序规则排好。

那么我们会写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(可嵌套判断)

效果:

已借出
拒绝借用
借出审批中
已归还
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|VIP|电脑疯子技术论坛 ( Computer madman team )

GMT+8, 2025-1-23 10:34

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表