`
meiyx
  • 浏览: 183741 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle union,union all用法

阅读更多
UNION 指令的目的是将两个 SQL 语句的结果合并起来,可以查看你要的查询结果.

例如:
select cpid from eps_cp union select cpid from eps_cpcms_user

union用法中,两个select语句的字段类型匹配,而且字段个数要相同
select cpid ,ISAVAILABLE from eps_cp union all select cpid,eps_cpcms_user.isadmin  from eps_cpcms_user

UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。

在查询中会遇到 UNION ALL,它的用法和union一样,只不过union含有distinct的功能,它会把两张表了重复的记录去掉,而union all不会,所以从效率上,union all 会高一点,但在实际中用到的并不是很多.
UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。
从效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL
尽量使用union all,因为union需要进行排序,去除重复记录,效率低
分享到:
评论

相关推荐

    union all与order by用法

    UNION ALL 用于合并两个或多个 SELECT 语句的结果集,使用方法是将每个 SELECT 语句用 UNION ALL 连接起来。例如: ```sql SELECT 'china' AS col_1, 'america' AS col_2, 'canada' AS col_3, -1 AS status FROM ...

    27.Oracle union多表查询1

    在Oracle数据库中,`UNION` 和 `UNION ALL` 是两种用于合并多个查询结果集的方法,主要应用于多表查询。这两个操作符在处理数据时有着显著的区别。 1. **UNION 操作符** `UNION` 用于合并两个或多个`SELECT`语句的...

    Oracle 多行记录合并_连接_聚合字符串的几种方法_oracle_脚本之家1

    Oracle数据库在处理多行记录合并、连接和聚合字符串时,有多种方法,下面将详细介绍其中的几种常见技术。 1. 被集合字段范围小且固定型 这种方法适用于字段值有限且已知的情况。通过使用`DECODE`函数,我们可以为每...

    Oracle提高查询效率的方法

    2. 注意 union 和 union all 的区别:union 比 union all 多做了一步 distinct 操作,能用 union all 的情况下尽量不用 union。 3. 查询时尽量不要返回不需要的行、列:在多表连接查询时,尽量改成连接查询,少用子...

    浅谈Oracle数据库性能的优化

    Oracle数据库作为全球最广泛使用的数据库之一,其性能优化一直是数据库管理员(DBA)关注的重点。本文旨在探讨一种通过优化SQL语句执行过程来提高Oracle数据库性能的方法。 #### 二、SQL语句执行过程及其优化 在...

    oracle行列转换总结

    本文将深入探讨Oracle中实现行列转换的几种方法,包括使用`UNION ALL`、`MODEL`子句以及集合类型(`collections`),并提供具体的示例来帮助理解。 ### 1. 使用`UNION ALL`进行行列转换 `UNION ALL`是一种简单直接的...

    oracle语句优化.docx

    本文将详细地介绍 Oracle 语句优化的方法和技巧,涵盖多表关联、EXISTS 和 IN 语句的使用、INDEX_JOIN 优化、WHERE 和 HAVING 语句的区别、NOT IN 和 <> 操作符的使用、LIKE 操作符的替代、UNION 操作符的优化、SQL ...

    oracle10g数据导入到oracle9i解决方案

    UNION ALL SELECT * FROM SYS.EXU9TNEB; ``` - **确保视图可用**:在创建视图后,需要确保这个视图在Oracle 9i和Oracle 10g中都是可用的。这通常可以通过查看`user_views`视图来实现。 完成上述步骤后,就可以...

    oracle实现阶梯式累加

    UNION ALL SELECT 'B', 10, 2000 FROM DUAL UNION ALL SELECT 'C', 20, 1500 FROM DUAL UNION ALL SELECT 'D', 20, 3000 FROM DUAL UNION ALL SELECT 'E', 10, 1000 FROM DUAL; ``` 这段代码创建了一个名为`SALARY`...

    oracle HINTS用法

    此Hint用于连接查询(CONCAT)而不是UNION ALL,这样可以避免重复数据。 **示例:** ```sql SELECT /*+ USE_CONCAT */ * FROM BSEMPMS WHERE DPT_NO = 'TDC506' AND SEX = 'M'; ``` #### 16. `/*+ NO_EXPAND */` ...

    5分钟了解MySQL5.7中union all用法的黑科技

    union all在MySQL5.6下的表现 Part1:MySQL5.6.25 [root@HE1 ~]# MySQL -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: ...

    Oracle 语法之 OVER (PARTITION BY ..) 及开窗函数(转载)

    #### 三、OVER (PARTITION BY ..) 的使用方法 ##### 1. 分区概述 `OVER (PARTITION BY ...)` 的主要作用是定义一个分区集合,即对数据进行分组,然后在每个分区内执行相应的操作。例如,在以下示例中,我们根据 `...

    Oracle高级sql学习与练习

    UNION和UNION ALL用于联合多个结果集,不同之处在于UNION ALL会将所有结果包括重复项,而UNION则会自动去除重复的结果。INTERSECT用来返回两个查询结果集的交集,而MINUS则返回第一个查询结果集相对于第二个查询结果...

    Oracle SQL编写规范

    Oracle SQL编写规范是指在编写SQL语句时的一些基本原则和方法,旨在提高SQL语句的执行效率和可读性。以下是Oracle SQL编写规范的详细解释: 1. 尽量用索引,特别在从大量数据中返回小部分数据时 使用索引可以大大...

    oracle入侵与SQL注射技巧

    对于检测是否为Oracle数据库,可以使用以下方法: **2.1 使用`dual`表进行测试** ```sql And0(selectcount(*)fromdual) ``` 如果返回错误信息,则表示可能是Oracle数据库。 **2.2 测试列数** 通过添加多个`null`值...

    Oracle SQL最佳实践

    在合并多个查询结果时,我们通常会使用 `UNION` 或 `UNION ALL`。其中 `UNION` 会在返回结果前进行排序并去除重复记录,这可能会消耗大量的计算资源。相比之下,`UNION ALL` 不会对结果进行排序或去重,因此执行效率...

    Oracle多行记录合并

    - **`UNION ALL` 或 `UNION`:** 虽然这不是直接的合并,但通过将结果集合并,可以达到类似的效果。例如,如果你有多个视图或表,每个都有一部分数据,可以使用这些操作将它们组合在一起。 3. **`CONNECT BY` 和 `...

    ORACLE经典学习笔记

    本章节主要介绍了Oracle数据库中常用的命令及其使用方法。 1. **查看参数文件**: `Desc v$parameter` - 这个命令用于查看Oracle的参数文件信息,通过查询`v$parameter`视图可以获取当前实例的所有参数设置。 2....

    oracle中的grouping

    本文将详细解释`GROUPING`函数的使用方法及其应用场景,并通过一个示例来帮助理解其工作原理。 #### 一、`GROUPING`函数简介 `GROUPING`函数主要用于标识列是否被包含在`GROUP BY`子句中。当某列未被`GROUP BY`...

    SQL优化过程中常见Oracle中"HINT"的30个用法

    此`HINT`用于替换复杂的WHERE子句中的OR逻辑为UNION ALL操作: ```sql SELECT /*+ USE_CONCAT */ * FROM BSEMPMS WHERE DPT_NO = 'TDC506' AND SEX = 'M'; ``` ### 16. /*+NO_EXPAND*/ 当WHERE子句包含IN列表或OR...

Global site tag (gtag.js) - Google Analytics