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

  • 相关阅读:
    我家笨笨爱上了小笨
    Outlook备份全攻略
    中国男篮有希望!评中国vs西班牙之战
    男为己悦者穷
    转:15则笑话
    看看你家乡在全国的位置2008最新各省市的GDP和人均收入排名
    锦江之星 .VS. 如家HOME INN
    学会心理养生
    另眼看北京奥运
    南方餐馆与北方餐馆
  • 原文地址:https://www.cnblogs.com/learnapi/p/7905272.html
Copyright © 2011-2022 走看看