码迷,mamicode.com
首页 > 数据库 > 详细

sqlserver复杂排序(order by case when)

时间:2017-01-07 15:02:27      阅读:297      评论:0      收藏:0      [点我收藏+]

标签:实现   sid   div   date   第一个   bsp   nbsp   sql   order   

 /*
表 sysid自增主键  scro分数  oper操作时间
scro分数 > 5的按照  分数 降序, 分数小于等于5的按照 操作时间 升序; >5 的排在 《=5的前面
*/
select * from test order by case when scro > 5 then 1 else 0 end desc, case when scro > 5 then scro elseDATEDIFF(MINUTE,oper,GETDATE()) end desc
--  第一个case 把 》5 和《=5整体,排序,第二个则  为了满足 (分数小于等于5的按照 操作时间 升序)条件不可能是   同一个级别的一个升序一个降序,所以通过 DATEDIFF(MINUTE,oper,GETDATE())的 【降序】方式,实现 日期的升序排列。

 

sqlserver复杂排序(order by case when)

标签:实现   sid   div   date   第一个   bsp   nbsp   sql   order   

原文地址:http://www.cnblogs.com/artjs/p/6259266.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!