比如有一个数据表,里面有两个日期字段,一个是开始时间,一个是结束时间。要求是:当结束时间大于当前时间,按开始时间顺序排列;当结束时间少于当前时间,按结束时间倒序排列。示例如下:(开始时间:beginTime,结束时间:endTime)
- select * from table1 where endTime>NOW()
- union
- select * from table1 where endTime<NOW()
- order by (case when endTime>NOW then 0 else 1),(case when endTime>NOW() then ABS(TO_DAYS(beginTime)-TO_DAYS(NOW())) else ABS(TO_DAYS(endTime)-TO_DAYS(NOW())))
转载于:https://blog.51cto.com/xhway/554007