MySQL union all排序问题和sql server 的union all排序问题

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语句,结果如下,可以看出是没有顺序的:

下面语句:

(select t1.goods_id  goods_id from 1dcq_goods t1 order by t1.goods_id limit 999999999 )
UNION all
(select t2.goods_id  goods_id from 1dcq_goods t2 order by t2.goods_id desc limit 999999999)

结果如下,可以看出是排序的,一个升序,一个降序,然后合并:

可见"limit"关键字不能少!

Sql Server union all排序问题

解决:

SELECT * FROM (SELECT TOP 100 percent *  from T_Test where name >= 'A' ORDER BY name ) a
union ALL
SELECT * FROM (SELECT TOP 100 percent *  from T_Test where name < 'A' ORDER BY name ) b

关键字:TOP 100 percent

posted @ 2021-08-29 18:25  一叶知秋。  阅读(1107)  评论(0编辑  收藏  举报