关于hibernate中hql语句 case when的写法
java hql case when的用法
if(null == sorter){ hql.append(" order by m.mDate desc,case when m.mealTime = 'morning' then '1' when m.mealTime = 'noon' then '2' when m.mealTime = 'night' then '3' when m.mealTime = 'midnight' then '4' end "); }
注:
上面hql语句的意思可以理解为:
通过mDate 降序排序,同时还得满足当mealTime = 'morning' 时,在日期的基础上排第一位,当mealTime = 'noon' 同理,以此类推即可。
case when既可以写在select后面,排序的时候也可以写在order by后面
下面是sql的case when写法
select t.id,t.name,t.code,t.select_time,t.now_level, case t.now_level WHEN '县处级正职领导职务' THEN 38 WHEN '县处级正职非领导职务' THEN 36 WHEN '县处级副职领导职务' THEN 34 WHEN '县处级副职非领导职务' THEN 31 WHEN '乡科级正职领导职务' THEN 28 WHEN '乡科级正职非领导职务' THEN 26 WHEN '乡科级副职非领导职务' THEN 21 WHEN '科员' THEN 20 WHEN '新录用未定级' THEN 19 WHEN '五级职员' THEN 18 WHEN '六级职员' THEN 15 WHEN '七级职员' THEN 13 WHEN '八级职员' THEN 11 WHEN '九级职员' THEN 9 WHEN '市管企业正职' THEN 6 WHEN '市管企业副职' THEN 3 WHEN '企事业其它' THEN 1 END leve FROM Torg_Cadre t WHERE t.status=2 ORDER BY code desc,(date_format(select_time,'%Y')) desc, leve desc;
多字段排序,每个字段后面都加desc或asc
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 电商平台中订单未支付过期如何实现自动关单?
· 用 .NET NativeAOT 构建完全 distroless 的静态链接应用
· 为什么构造函数需要尽可能的简单
· 探秘 MySQL 索引底层原理,解锁数据库优化的关键密码(下)
· 大模型 Token 究竟是啥:图解大模型Token
· 瞧瞧别人家的限流,那叫一个优雅!
· 1.net core 工作流WorkFlow流程(介绍)
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
· 面试官:如果某个业务量突然提升100倍QPS你会怎么做?
· 短信接口被刷爆:我用Nginx临时止血