a.主题列表按 最后更新时间 进行排序

数据库SQL语句中没有if..else的判断语句,但是oracle中有decode()函数可以实现这种判断语句,但是还可以用case..when..then ..else..end,功能更加强大

但此次运用特殊字段lastUpdateTime解决,提高了效率,只用查询一张表:

b.主题列表排序,让所有置顶帖排在最上面,然后,让置顶帖,精华帖,普通帖按最后更新时间进行排序。

public List<Topic> getByForum(Forum forum) {
              //TODO 排序,让所有置顶帖排最上面,然后,让置顶帖,精华帖,普通帖并按最后更新时间排序。
              //FIXME 怎么排序
     return getSession().createQuery("FROM Topic t WHERE t.forum=? ORDER BY (CASE t.type WHEN 2 THEN 2 ELSE 0 END) DESC,"
                                                     +" t.lastUpdateTime DESC")
                                                    .setParameter(0,forum).list();
}

c.case 对象 when 条件1 then 结果1 .. else 其他结果 end 可以用在select/where/order by 后面

    例如:

例如:

   

论坛:排序 >>case..when..then ..end的妙用的更多相关文章

  1. sql排序 去除默认升降序排序case方法////遍历数据库所有表及统计表数据总数

    case排序法: end 还有EXEC法 可以网上查 SQLServer遍历数据库所有表及统计表数据总数: DECLARE @TableName varchar(); CREATE TABLE #Ge ...

  2. Oracle查询优化--排序

    --普通排序 SELECT * FROM emp ORDER BY sal DESC; --使用列序排序 DESC; --组合排序 DESC; --translate函数,参数分别用A.B.C表示 S ...

  3. MySQL case when 使用

    case when 自定义排序时的使用 根据 case when 新的 sort字段排序 case when t2.status = 4 and t2.expire_time>UNIX_TIME ...

  4. sql case when then else end sql_variant

    /****************************************************************************** ** Name: usp_cfg_Get ...

  5. java面试题总汇

    coreJava部分 7 1.面向对象的特征有哪些方面? 7 2.作用域public,private,protected,以及不写时的区别? 7 3.String 是最基本的数据类型吗? 7 4.fl ...

  6. SQL存储过程分页(通用的拼接SQL语句思路实现)

    多表通用的SQL存储过程分页 案例一: USE [Community] GO /****** Object: StoredProcedure [dbo].[Common_PageList] Scrip ...

  7. Devexpress 汉化

    DevExpress是一个比较有名的界面控件套件,提供了一系列的界面控件套件的DotNet界面控件.对于较老的版本(例如之前项目中遇到的dev9),对于汉化(应该说本地化Localization)支持 ...

  8. Java项目——模拟电话薄联系人增删改查

    该项目模拟了电话本记录联系人的业务功能,用来练习对数据库的增删改查等操作. 菜单类:Menu -- 用来封装主菜单和个选项的子菜单 Person类: Person--联系人的实体类 TelNoteRe ...

  9. 电话薄设计--java

    package com.hanqi.telbook; import java.util.Scanner; public class Menu { //主菜单 public void mainMenu( ...

随机推荐

  1. Spring设置动态定时任务

    1.在Spring中经常会用到定时任务,一般会在业务方法上使用@Schedule(cron="定时执行规则"),无法实现从前台动态设置定时任务. 在java中固定频率的任务使用Sc ...

  2. VS2015 添加web服务(电子看板)

    鼠标右键点击项目,选择引用----添加服务引用,输入WS地址后单击转到 http://ERPPRD02:8000/sap/bc/srt/wsdl/flv_10002A111AD1/bndg_url/s ...

  3. python 函数的定义及传参

    函数是一个通用的程序结构部件,是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 定义一个简单的函数: >>> def test(a): #创建一个函数,函数名是test ...

  4. 下载安装windows版Redis

    链接       https://github.com/MicrosoftArchive/redis/releases 选择版本下载 在redis目录打开cmd命令输入 redis-server.ex ...

  5. mysql不能使用IP连接,可以使用localhost连接

    问题: 本地mysql,使用127.0.0.1可以连接成功,使用具体IP连接报错 ERROR 1130 (HY000): Host '10.252.225.125' is not allowed to ...

  6. cloudstack4.11+KVM+4网卡bond5+briage 交换机不作配置

    网卡绑定配置 # cat ifcfg-em1TYPE=EthernetBOOTPROTO=noneDEVICE=em1ONBOOT=yesMASTER=bond0SLAVE=yes# cat ifcf ...

  7. matlab画图标题自定义字体大小

    title('标题','fontname','Times New Roman','Color','b','FontSize',20);字体是Times New Roman,颜色是蓝色('b'即blue ...

  8. NumPy 排序、条件刷选函数

    NumPy 排序.条件刷选函数 NumPy 提供了多种排序的方法. 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性. 下表显示了三种排序算法 ...

  9. HDU-1042.N!(大数与小数相乘的乘法模拟)

    本题大意:给定一个10000以内的整数n,让你求出n!并输出. 本题思路:先初始化一个存放答案的数组ans,初始ans[0] = 1,并初始化其剩下的元素为0,接着就从2开始依次与ans数组内的每一个 ...

  10. 网页请求get方式

    方法都是博客中的大神写的,谢谢各路大神. 方法一:(亲测有效) //Get请求方式 private string RequestGet(string Url) { string PageStr = s ...