UNION 指令的目的是将两个 SQL 语句的结果合并起来,可以查看你要的查询结果.
例如:
SELECT Date FROM Store_Information
UNION
SELECT Date FROM Internet_Sales
注意:union用法中,两个select语句的字段类型匹配,而且字段个数要相同,如上面的例子,在实际的软件开发过程,会遇到更复杂的情况,具体请看下面的例子
select '1' as type,FL_ID,FL_CODE,FL_CNAME,FLDA.FL_PARENTID from FLDA
WHERE ZT_ID=2006030002
union
select '2' as type,XM_ID,XM_CODE ,XM_CNAME ,FL_ID from XMDA
where exists (select * from (select FL_ID from FLDA WHERE ZT_ID=2006030002 ) a where XMDA.fl_id=a.fl_id)
order by type,FL_PARENTID ,FL_ID
这个句子的意思是将两个sql语句union查询出来,查询的条件就是看XMDA表中的FL_ID是否和主表FLDA里的FL_ID值相匹配,(也就是存在).
UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。
在查询中会遇到 UNION ALL,它的用法和union一样,只不过union含有distinct的功能,它会把两张表了重复的记录去掉,而union all不会,所以从效率上,union all 会高一点,但在实际中用到的并不是很多.
表头会用第一个连接块的字段。。。。。。。。。。
而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。
从效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL,如下:
尽量使用union all,因为union需要进行排序,去除重复记录,效率低。
分享到:
相关推荐
在Oracle数据库中,`UNION` 和 `UNION ALL` 是两种用于合并多个查询结果集的方法,主要应用于多表查询。这两个操作符在处理数据时有着显著的区别。 1. **UNION 操作符** `UNION` 用于合并两个或多个`SELECT`语句的...
UNION ALL 用于合并两个或多个 SELECT 语句的结果集,使用方法是将每个 SELECT 语句用 UNION ALL 连接起来。例如: ```sql SELECT 'china' AS col_1, 'america' AS col_2, 'canada' AS col_3, -1 AS status FROM ...
Oracle数据库在处理多行记录合并、连接和聚合字符串时,有多种方法,下面将详细介绍其中的几种常见技术。 1. 被集合字段范围小且固定型 这种方法适用于字段值有限且已知的情况。通过使用`DECODE`函数,我们可以为每...
### Oracle Hints用法详解 Oracle Hints是Oracle数据库中一种非常实用的功能,它允许用户在SQL语句中提供优化器提示,以便更好地控制查询执行计划。这些提示可以帮助数据库优化器选择更有效的路径来执行查询,从而...
本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as select * from scott.dept; create table emp as select * from ...
在Oracle中,可以利用子查询、连接(JOIN)、集合操作(UNION, INTERSECT, EXCEPT)以及窗口函数来处理复杂的查询需求。此外,PL/SQL是一种强大的过程式语言,可以编写存储过程、函数和触发器,实现更复杂的业务逻辑...
### Oracle关键字用法整合 #### 1. CONCAT **功能说明**:`CONCAT`用于连接两个或多个字符串。在Oracle中,可以使用`||`作为替代方式。 **示例**: ```sql SELECT CONCAT('%','') FROM dual; ``` 在示例中,由于`...
### Oracle 10g 数据导入到 Oracle 9i 解决方案 ...此外,还可以考虑使用更现代的方法和技术来进行数据库迁移,比如使用Oracle GoldenGate或者Oracle Data Pump等工具,以减少手工干预和提高效率。
"Oracle 提高查询效率的方法" Oracle数据管理系统作为一个强大的关系型数据库管理系统,具有高效、可靠、可扩展的特点。但是,随着数据量的增加和复杂查询的增加,查询效率可能会下降。因此,提高查询效率是 ...
### Oracle Row_Number 函数详解 ...通过掌握其基本用法以及与其他窗口函数的结合使用,可以在数据处理和分析方面发挥重要作用。无论是简单的排序还是复杂的分组分析,`ROW_NUMBER()`都能够提供有效的解决方案。
5. **集合操作**:涵盖UNION、INTERSECT和EXCEPT等集合操作,以及JOIN(包括内连接、外连接和自连接)的概念和使用方法。 6. **子查询**:讲解如何使用子查询来嵌套SQL语句,实现更复杂的查询逻辑。 7. **分组与...
本文将详细地介绍 Oracle 语句优化的方法和技巧,涵盖多表关联、EXISTS 和 IN 语句的使用、INDEX_JOIN 优化、WHERE 和 HAVING 语句的区别、NOT IN 和 <> 操作符的使用、LIKE 操作符的替代、UNION 操作符的优化、SQL ...
深入学习SQL,还需要掌握联接(JOIN)、子查询、集合操作(UNION、INTERSECT、EXCEPT)等高级用法。 三、PL/SQL编程 PL/SQL是Oracle特有的过程化SQL语言,用于编写数据库程序。它结合了SQL查询功能与过程性编程语言...
本篇文章将详细介绍Oracle中实现多行记录合并的几种方法,包括使用SQL函数、集合操作以及自定义函数。 1. **使用SQL函数:** - **`LISTAGG()` 函数:** 这是Oracle 11g及以后版本引入的一个强大的聚合函数,专门...
3. **编写查询语句**:使用窗口函数完成阶梯式累加的计算。 #### 三、示例演示 为了更好地理解这一过程,下面将通过一个具体的例子来展示如何实现。 ##### 1. 创建表 根据题目中的部分代码,我们可以看到已经给...
本文将深入探讨Oracle中实现行列转换的几种方法,包括使用`UNION ALL`、`MODEL`子句以及集合类型(`collections`),并提供具体的示例来帮助理解。 ### 1. 使用`UNION ALL`进行行列转换 `UNION ALL`是一种简单直接的...
指示优化器使用ROWID访问方法,这对于基于ROWID的快速定位非常有用: ```sql SELECT /*+ ROWID(BSEMPMS) */ * FROM BSEMPMS WHERE ROWID >= 'AAAAAAAAAAAAAA' AND EMP_NO = 'SCOTT'; ``` ### 7. /*+CLUSTER(TABLE)*...
对于检测是否为Oracle数据库,可以使用以下方法: **2.1 使用`dual`表进行测试** ```sql And0(selectcount(*)fromdual) ``` 如果返回错误信息,则表示可能是Oracle数据库。 **2.2 测试列数** 通过添加多个`null`值...
Oracle数据库作为全球最广泛使用的数据库之一,其性能优化一直是数据库管理员(DBA)关注的重点。本文旨在探讨一种通过优化SQL语句执行过程来提高Oracle数据库性能的方法。 #### 二、SQL语句执行过程及其优化 在...