union all查询结果排序问题?

作者&投稿:展茜 (若有异议请与网页底部的电邮联系)
如何将UNION ALL联合查询的结果存入新表中并排序~

因为union all是将来年各个查询的结果集拼接在一起,
你如果在其中的一个查询中order by,没记错的话会语法错误,假设没语法错误的话,
只是对结果集的一部分进行排序,不能达到对整个结果集进行排序的效果,所以是没有意义的
如果你想实现对整个结果集进行排序的话,可以在外面order by :
select 你想要的字段
from (查询1 union all 查询2)

由于Union需要对查询结果集进行排序操作,当数据量较大时,若非特殊需要,尽量不要使用Union操作,用Union All操作,然后对Union All出来的结果执行去重操作即可,所以结果不一样-- union allselect '张三' nameunion allselect '李四' union allselect '王五' union allselect '王五' union allselect '苹果' addressunion allselect '香蕉' union allselect '橘子' -- result张三李四王五王五苹果香蕉橘子-- union select '张三' nameunion allselect '李四' union allselect '王五' union allselect '王五' union select '苹果' addressunion allselect '香蕉' union allselect '橘子' -- result李四苹果王五张三香蕉橘子

SELECT 省份 A,1 as X,品牌 B ,sum(数量) sl  FROM adcsys1.TB_ZCL_ADC_ALL_partition 
group by 省份,品牌
union all  
SELECT 省份,2,系别,sum(数量)  FROM adcsys1.TB_ZCL_ADC_ALL_partition 
group by 省份,系别
order by X,A,B



塔城市19690953416: SQL union all 排序问题 -
欧萍亿恒: 展开全部 select * from ( select 字段,aDate mydate from A union all select 字段,bDate mydate from B ) a order by a.mydate这样试试

塔城市19690953416: mysql中怎么让union all不打乱顺序 -
欧萍亿恒: 在前面在加一列,然后把union all 的结果放到子查询中,用来排序比如: select * from (select 0+a ord,t.* from where a is not nullunion allselect 1+b ord,t.* from where a is not null ) ta order by ord

塔城市19690953416: sqlserver2005 查询有union all组成的表为什么union中的排序不起作用 -
欧萍亿恒: 因为union all是将来年各个查询的结果集拼接在一起, 你如果在其中的一个查询中order by,没记错的话会语法错误,假设没语法错误的话, 只是对结果集的一部分进行排序,不能达到对整个结果集进行排序的效果,所以是没有意义的 如果你想实现对整个结果集进行排序的话,可以在外面order by : select 你想要的字段 from (查询1 union all 查询2) order by 排序字段看了你的问题补充: 将order by [time] desc 放在ff后边就行啦

塔城市19690953416: sql 使用union后结果集排序,无法理解 -
欧萍亿恒: 由于Union需要对查询结果集进行排序操作,当数据量较大时,若非特殊需要,尽量不要使用Union操作,用Union All操作,然后对Union All出来的结果执行去重操作即可,所以结果不一样-- union all select '张三' name union all select '李四' union ...

塔城市19690953416: 联合查询的排序问题 -
欧萍亿恒: 要 UNION / UNION ALL 完了再排序?外面套一个查询,例如:SELECT * FROM(SELECT * FROM t1UNION ALL SELECT * FROM t2) a ORDER BY 1,2

塔城市19690953416: oracle 多个结果集union后保持各自原有排序 -
欧萍亿恒: 使用Union All就是能实现Oracle中Union与Union All的区别如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或称为联合)的作用是将多个结果合并在一起显示出来.union和...

塔城市19690953416: 一个联合查询的排序问题 -
欧萍亿恒: select * from( select t1.id from (select id from test) t 1 unionselect t2.id from (select id from test1) t 2) A order by A.id

塔城市19690953416: 有UNION ALL的SQL怎样去做特定排序 -
欧萍亿恒: select * from ( select * from Table1 union all select * from Table2) as abc order by 字段

塔城市19690953416: 请问联合查询有什么注意事项? -
欧萍亿恒: 注意事项 联合查询时,查询结果的列标题为第一个查询语句的列标题.因此,要定义列标题必须在第一个查询语句中定义.要对联合查询结果排序时,也必须使用第一查询语句中的列名、列标题或者列序号. 在使用UNION 运算符时,应保证每个联合查询语句的选择列表中有相同数量的表达式,并且每个查询选择表达式应具有相同的数据类型,或是可以自动将它们转换为相同的数据类型.在自动转换时,对于数值类型,系统将低精度的数据类型转换为高精度的数据类型. 在包括多个查询的UNION语句中,其执行顺序是自左至右,使用括号可以改变这一执行顺序.例如: 查询1 UNION (查询2 UNION 查询3仅供参考 欢迎采纳 希望帮到你

塔城市19690953416: MySQl 使用union合并查询,排序被打乱了 -
欧萍亿恒: 用union all,union 会滤重并且排序 ,查询效率就低了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网