类似java中swith case语句的sql语句
2015-09-07 16:08
274 查看
在项目中涉及到一些排序的问题,比如说一张论坛表topic中,分为置顶帖,精华帖,普通帖,需要将置顶帖排在最上面,精华帖和普通帖不做顺序区分。此时设定精华帖的type为2,精华帖的type为1,普通帖为0,此时便可以运用下面的hql语句。
FROM Topic t WHERE t.forum=? ORDER BY (CASE t.type WHEN 2 THEN 2 ELSE 0 END) DESC, t.lastUpdateTime DESC
其中CASE t.type WHEN 2 THEN 2 ELSE 0 END 的意思为,当type为2的时候type为2,当type不为2的时候按照0处理,也就是说1 和 0 都按照0进行排序,所以最终的结果会将type为2的放在最上面,type为0和1的普通帖与精华帖不做顺序区分。
FROM Topic t WHERE t.forum=? ORDER BY (CASE t.type WHEN 2 THEN 2 ELSE 0 END) DESC, t.lastUpdateTime DESC
其中CASE t.type WHEN 2 THEN 2 ELSE 0 END 的意思为,当type为2的时候type为2,当type不为2的时候按照0处理,也就是说1 和 0 都按照0进行排序,所以最终的结果会将type为2的放在最上面,type为0和1的普通帖与精华帖不做顺序区分。
相关文章推荐
- java-使用正则表达式截取字符串中的时间信息
- Java的运行原理
- Java生成pdf
- JAVA高并发学习笔记(一)
- java web基础之servlet
- struts2往action传值时的乱码问题
- MyEclipse安装后需要进行的配置
- JavaWeb中读取文件资源的路径问题
- Spring容器上下文的关闭
- 探秘Java虚拟机——内存管理与垃圾回收
- java静态类与非静态类
- 将eclipse的显示语言改为英文(有时安装的插件显示为中文的)
- KNN 在手写识别中的应用(Java 实现)
- ant java命令 官方文档
- spring中constructor-arg 构造方法注入
- 9、java5线程池之定时任务线程池newScheduledThreadPool与newSingleThreadScheduledExecutor
- struts2拦截器配置;拦截器栈;配置默认拦截器;拦截方法的拦截器MethodFilterInterceptor;完成登录验证
- 【Java】JDK6和JDK7中String的substring()方法及其差异
- spring任务调度
- 2016校招腾讯研发岗笔试题(第二题)用Java实现