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

  • 相关阅读:
    DVWA SQL Injection High
    DVWA SQL Injection Medium
    Sagemath在ctf密码学中的使用
    Python杂记
    Elgamal&RSA小结
    攻防世界-密码学-onetimepad
    攻防世界-密码学-sleeping-guard
    攻防世界-密码学-streamgame1
    GACTF2020密码学部分详解
    攻防世界-密码学-xor_game
  • 原文地址:https://www.cnblogs.com/learnapi/p/7905272.html
Copyright © 2011-2022 走看看