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

Oracle union用法

阅读更多
ps:本人破解了润乾报表,全部功能可用,低价销售,需要要的请加qq:229501642联系

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需要进行排序,去除重复记录,效率低。
分享到:
评论
4 楼 HyEidolon 2011-11-01  
     
3 楼 gray 2009-11-20  
这个跟“=”,等值连接是一个意思。
2 楼 汲建帅 2009-01-14  
[i][/i][b]ssss[/b]
引用
1 楼 aixia20082003 2008-11-13  

相关推荐

    27.Oracle union多表查询1

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

    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 ...

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

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

    oracle HINTS用法

    ### Oracle Hints用法详解 Oracle Hints是Oracle数据库中一种非常实用的功能,它允许用户在SQL语句中提供优化器提示,以便更好地控制查询执行计划。这些提示可以帮助数据库优化器选择更有效的路径来执行查询,从而...

    Oracle分组函数之ROLLUP的基本用法

    本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as select * from scott.dept; create table emp as select * from ...

    oracle高级用法

    在Oracle中,可以利用子查询、连接(JOIN)、集合操作(UNION, INTERSECT, EXCEPT)以及窗口函数来处理复杂的查询需求。此外,PL/SQL是一种强大的过程式语言,可以编写存储过程、函数和触发器,实现更复杂的业务逻辑...

    Oracle关键字用法整合

    ### Oracle关键字用法整合 #### 1. CONCAT **功能说明**:`CONCAT`用于连接两个或多个字符串。在Oracle中,可以使用`||`作为替代方式。 **示例**: ```sql SELECT CONCAT('%','') FROM dual; ``` 在示例中,由于`...

    oracle10g数据导入到oracle9i解决方案

    ### Oracle 10g 数据导入到 Oracle 9i 解决方案 ...此外,还可以考虑使用更现代的方法和技术来进行数据库迁移,比如使用Oracle GoldenGate或者Oracle Data Pump等工具,以减少手工干预和提高效率。

    Oracle提高查询效率的方法

    "Oracle 提高查询效率的方法" Oracle数据管理系统作为一个强大的关系型数据库管理系统,具有高效、可靠、可扩展的特点。但是,随着数据量的增加和复杂查询的增加,查询效率可能会下降。因此,提高查询效率是 ...

    oracle row_number用法

    ### Oracle Row_Number 函数详解 ...通过掌握其基本用法以及与其他窗口函数的结合使用,可以在数据处理和分析方面发挥重要作用。无论是简单的排序还是复杂的分组分析,`ROW_NUMBER()`都能够提供有效的解决方案。

    Oracle Press - Oracle Database 11g SQL

    5. **集合操作**:涵盖UNION、INTERSECT和EXCEPT等集合操作,以及JOIN(包括内连接、外连接和自连接)的概念和使用方法。 6. **子查询**:讲解如何使用子查询来嵌套SQL语句,实现更复杂的查询逻辑。 7. **分组与...

    oracle实现阶梯式累加

    3. **编写查询语句**:使用窗口函数完成阶梯式累加的计算。 #### 三、示例演示 为了更好地理解这一过程,下面将通过一个具体的例子来展示如何实现。 ##### 1. 创建表 根据题目中的部分代码,我们可以看到已经给...

    oracle语句优化.docx

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

    oracle齐全,这里面包含了所有的oracle例题

    深入学习SQL,还需要掌握联接(JOIN)、子查询、集合操作(UNION、INTERSECT、EXCEPT)等高级用法。 三、PL/SQL编程 PL/SQL是Oracle特有的过程化SQL语言,用于编写数据库程序。它结合了SQL查询功能与过程性编程语言...

    Oracle多行记录合并

    本篇文章将详细介绍Oracle中实现多行记录合并的几种方法,包括使用SQL函数、集合操作以及自定义函数。 1. **使用SQL函数:** - **`LISTAGG()` 函数:** 这是Oracle 11g及以后版本引入的一个强大的聚合函数,专门...

    oracle行列转换总结

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

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

    指示优化器使用ROWID访问方法,这对于基于ROWID的快速定位非常有用: ```sql SELECT /*+ ROWID(BSEMPMS) */ * FROM BSEMPMS WHERE ROWID >= 'AAAAAAAAAAAAAA' AND EMP_NO = 'SCOTT'; ``` ### 7. /*+CLUSTER(TABLE)*...

    oracle入侵与SQL注射技巧

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

    浅谈Oracle数据库性能的优化

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

Global site tag (gtag.js) - Google Analytics