码迷,mamicode.com
首页 > 数据库 > 详细

oracle union 和 union all

时间:2019-10-16 16:12:36      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:union   语句   sel   sql   重复   集中   不一致   复数   acl   

java.sql.SQLSyntaxErrorException: ORA-01789: 查询块具有不正确的结果列数

 

原因: 发现是sql语句用union时的 两个语句查询的字段不一致

解决:将 2个 union 的sql语句,select的列,改为一样的字段。

 

UNION用的比较多union all是直接连接,取到得是所有值,记录可能有重复   union 是取唯一值,记录没有重复   
1、UNION 的语法如下:
[SQL 语句 1]
UNION
[SQL 语句 2]

2、UNION ALL 的语法如下:
[SQL 语句 1]
UNION ALL
[SQL 语句 2]

效率:
UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。

1、对重复结果的处理:UNION在进行表链接后会筛选掉重复的记录,Union All不会去除重复记录。

2、对排序的处理:Union将会按照字段的顺序进行排序;UNION ALL只是简单的将两个结果合并后就返回。

从效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复数据且不需要排序时的话,那么就使用UNION ALL。


简要回答:
UNION去重且排序

UNION ALL不去重不排序

oracle union 和 union all

标签:union   语句   sel   sql   重复   集中   不一致   复数   acl   

原文地址:https://www.cnblogs.com/moonsoft/p/11686096.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!