sqlserver复杂排序(order by case when)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver复杂排序(order by case when)相关的知识,希望对你有一定的参考价值。
/*
表 sysid自增主键 scro分数 oper操作时间
表 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)的主要内容,如果未能解决你的问题,请参考以下文章
sqlserver-order by offset fetch
求sqlserver join 后order by 速度慢的解决办法