关于Oracle中UNION ALL 时ORDER BY问题

一:数据准备

首先创建两张表,并各自insert部分数据,如下图:

NAMEA表:

NAMEA1表:

【说明:两表中字段NAME1为NUMBER类型】

二:查询校验

查询后各自按照字段NAME1进行排序

NAMEA:

NAMEA1:

无排序union all查询:

至此一切正常,如果后表增加排序的话结果如何呢?

ORA-00907:缺失右括号。很明显并不缺失。

先放下这个疑问,咱们只在前表加排序看看结果如何?

可以看出,其结果也是ORA-00907。

如果前后都加排序的话会如何?

很明显也是SQL错误,查找相关文章也是众说纷纭,本人也是受限于个人认知,在此也不一一罗列,免得误导后来者。

三:解决方法

经过不断尝试,找到两种解决方法,在此供大家参考,

一:汇集查询结果,然后排序

二:创建临时表

其实这两种方法就是一个思路,先是汇聚结果然后ORDER BY 。

好的,至此结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值