2 u011313384 u011313384 于 2016.02.16 15:56 提问

sql union排序问题,为什么会这样

mysql数据库

(select syncTime From t_bzRecord_1601 order by syncTime desc) union (select syncTime From t_bzRecord_1512 order by syncTime desc);

查询结果:
+---------------------+
| syncTime |
+---------------------+
| 2016-01-01 10:27:36 |
| 2016-01-26 14:01:51 |
| 2015-12-23 10:27:36 |
| 2015-12-23 10:27:48 |
| 2015-12-23 10:28:00 |
| 2015-12-23 10:28:12 |
| 2015-12-23 10:28:24 |
| 2015-12-23 10:28:36 |
| 2015-12-23 10:28:48 |
| 2015-12-23 10:29:00 |
| 2015-12-23 10:29:12 |
| 2015-12-23 10:29:24 |
| 2015-12-23 10:29:37 |
| 2015-12-23 10:29:48 |
| 2015-12-23 10:30:00 |
| 2015-12-23 10:30:12 |
| 2015-12-23 10:30:24 |

单独查,两个结果都是降序。
union后,结果就变为升序了。
这不科学啊

1个回答

boybaozi
boybaozi   Rxr 2016.02.16 16:06
已采纳

把排序提到最外面试试select * from(你的sql) order by xxx

boybaozi
boybaozi 回复我是你一一哥: OK~学习了
2 年多之前 回复
u011313384
u011313384 老大说,这样等于多查了一次。我是这样解决的select * From t_bzRecord_1602 union select * From t_bzRecord_1601 order by syncTime desc
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
SQL用了Union后的排序问题
最近使用SQL语句进行UNION查询,惊奇的发现:SQL没问题,UNION查询也没问题,都可以得到想要的结果,可是在对结果进行排序的时候,却出问题了。
两个sql查询使用union之后排序失效的解决方法
( SELECT * FROM ( SELECT a.id, a.userId, a.infoId, a.isRead, a.infoType, b.title, b.createTime FROM c_user_info a LEFT JOIN c_info b ON a.infoId = b.id
union 居然排序了
  UNION理解select * from A unionselect * from B此处用UNION  如果用 * 号的话,A, B 中的列的列数要一致方可以。如果不一致的话,会出现下列错误:使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式。 下面我们来了解下UNION和UNION
Sql UNION 合并多个结果集并排序
1.建表语句及测试数据: --创建表A CREATE TABLE A( A1 int NULL, A2 nvArchAr(50) NULL, A3 decimAl(18, 0) NULL ) --测试数据 INSERT INTO A VALUES (1,'A1',1) INSERT INTO A VALUES (2,'A2',1) INSERT INTO A VALUES (3,'A3',
mysql使用union顺序混乱
使用mysql用union并子集中用order by排序顺序会混乱 1. (select id from a order by start_time asc)      union all     (select id from b order by start_time desc) limit 0, 20 这样的写法会导致排序混乱 解决方法如下 2.  select * f
Oracle中使用了Union后的排序问题
最近使用SQL语句进行UNION查询,惊奇的发现:SQL没问题,UNION查询也没问题,都可以得到想要的结果,可是在对结果进行排序的时候,却出问题了。 1.UNION查询没问题 [sql] view plain copy SELECT `id`,`username`,`mobile`,`time`,id AS leader    FROM `
MySQL union all排序问题
(select t1.goods_id  goods_id from 1dcq_goods t1 order by t1.goods_id ) UNION all (select t2.goods_id  goods_id from 1dcq_goods t2 order by t2.goods_id desc ) 如上sql语句,结果如下,可以看出是没有顺序的: 下面语句:
union all 排序问题
sql server2000数据库试图V_Emp(员工试图)已经按照部门、所在专业组、姓名进行了排序(order by DepartID,GroupID,EmpName),如: ID,EmpName,      DepartID,GroupID,。。。。 001      001姓名             部门1       组1 004      004姓名             部门
表union时出现的排序规则问题
union表时出现Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CS_AS" and "SQL_Latin1_General_CP850_BIN2" in the UNION operation.此为两张表字段排序规则不同引起。用sp_help  tablename   查出字段的collate值
Oracle Union/Union all 的排序问题
<br />Oracle 通过在索引列上使用UNION/UNION ALL来提高合并查询的效率(相对于OR,不在此具体阐述),UNION/UNION ALL排序时,无论有多少个被union的部分,都只有最后一行一个order by子句,且UNION/UNION ALL的order by子句只能通过列号来标示你要排序的字段,例如:<br />SELECT a.recID, a.eventLevel, a.srcIP, a.dstIP, a.eventTime, a.eventCount, a.srcPort,