博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于hibernate中hql语句 case when的写法
阅读量:5216 次
发布时间:2019-06-14

本文共 1081 字,大约阅读时间需要 3 分钟。

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 leveFROM Torg_Cadre t WHERE  t.status=2ORDER BY code desc,(date_format(select_time,'%Y')) desc, leve desc;

多字段排序,每个字段后面都加desc或asc

转载于:https://www.cnblogs.com/learnapi/p/7905272.html

你可能感兴趣的文章
SQL进阶-索引设置&sql优化
查看>>
hive优化
查看>>
JDBC-select练习&jdbc工具类&数据库登录案例
查看>>
JDBC入门
查看>>
centos7安装pure-ftpd
查看>>
centos7搭建LNMP环境
查看>>
CSS注册页面案例
查看>>
JavaScript基本语法
查看>>
JavaScript运算符
查看>>
JavaScript语法-流程控制语句
查看>>
JavaScript对象
查看>>
BOM
查看>>
bootstrap入门&栅格系统
查看>>
bootstrap-全局CSS&js插件
查看>>
xml基础
查看>>
servlet
查看>>
http请求协议
查看>>
Request
查看>>
request登录案例
查看>>
http响应消息
查看>>