oracle union 和 union all

Posted moonsoft

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle union 和 union all相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中 union 和 union all 的区别

oracle中怎么将union all的字段值加在一起

oracle union all啥意思?

union与union all的区别

Union all和Union差别

oracle中union all