zoukankan      html  css  js  c++  java
  • 关于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

  • 相关阅读:
    第二节:如何正确使用WebApi和使用过程中的一些坑
    nodejs中function*、yield和Promise的示例
    关于nodejs访问mysql的思考
    nodejs使用log4js记录日志
    nodejs初识
    Spring学习笔记(入门)
    mybatis使用注解开发
    MyBatis配置文件中的常用配置
    using 自动释放资源示例
    Java将byte[]和int的互相转换
  • 原文地址:https://www.cnblogs.com/learnapi/p/7905272.html
Copyright © 2011-2022 走看看