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

  • 相关阅读:
    HDU 3395 Special Fish
    HDU 3772 Card Game
    poj2078
    poj2138
    poj2008
    poj1951
    poj1782
    到香港读研究生手册
    !!Html:frameset 使用心得
    PHP环境配置:Windows下XAMPP的安装说明与使用
  • 原文地址:https://www.cnblogs.com/learnapi/p/7905272.html
Copyright © 2011-2022 走看看