首页 > 数据库技术 > 详细

SQL 合并两个结果集 一个倒序,一个正序

时间:2015-07-08 20:56:34      阅读:200      评论:0      收藏:0      [点我收藏+]
要求状态正常的按end_time 升序排, 后面跟着 过期的 数据,按end_time 倒序排

select * from (SELECT * FROM table where status=‘正常‘ order by end_time asc) a union all

select * from (SELECT *  FROM table where status=‘到期‘ order by end_time desc)  b


必须外面包一层,直接两个结果集 union 发现正常的在上面,到期的在下面,但是各自内部是无序的,也就是说union的时候是没有order by做的union,

内部的order by没有生效, 包了一层应该是产生了临时中间表,次序便固定了。


还有个办法是用  case when 对 正常的 时间乘以-1 变为负值, 最后order by time  asc便可以得到结果

版权声明:本文为博主原创文章,未经博主允许不得转载。

SQL 合并两个结果集 一个倒序,一个正序

原文:http://blog.csdn.net/ladofwind/article/details/46808155

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!