`

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需要进行排序,去除重复记录,效率低

 

--合并重复行

select * from A

union

select * from B

 

 

--不合并重复行

select * from A

union all

select * from B

 

 

按某个字段排序

--合并重复行

select *

from (

select * from A

union

select * from B) AS T

order by 字段名

 

--不合并重复行

select *

from (

select * from A

union all

select * from B) AS T

order by 字段名

 

//sql server

Select * From (

select top 2 id,adddate,title,url from bArticle where ClassId='1' order by adddate desc) A

Union All

Select * From (

select top 2 id,adddate,title,url from bArticle where ClassId='2' order by adddate desc) B

Union All

Select * From (

select top 2 id,adddate,title,url from bArticle where ClassId='3' order by adddate desc) C

Union All

Select * From (

select top 2 id,adddate,title,url from bArticle where ClassId='4' order by adddate desc) D

 

 

//mysql

Select * From (

select id,adddate,title,url from bArticle where ClassId='1' order by adddate desc limit 0,2) A

Union All

Select * From (

select id,adddate,title,url from bArticle where ClassId='2' order by adddate desc limit 0,2) B

Union All

Select * From (

select id,adddate,title,url from bArticle where ClassId='3' order by adddate desc limit 0,2) C

Union All

Select * From (

select id,adddate,title,url from bArticle where ClassId='4' order by adddate desc limit 0,2) D

 

DB2里使用union时一定要注意相对应的字段一定是数据类型一样,输出时可以任意显示的列,但不能输出不同类型或不同表结构。因为这样会出错。

 


分享到:
评论

相关推荐

    union all与order by用法

    本文将详细介绍 UNION ALL 和 ORDER BY 的用法,并通过实例解释其应用场景。 UNION ALL 的用法 UNION ALL 用于合并两个或多个 SELECT 语句的结果集,使用方法是将每个 SELECT 语句用 UNION ALL 连接起来。例如: `...

    SQL语句 UNION 和 UNION ALL 使用

    ### SQL语句 UNION 和 UNION ALL 使用详解 #### 一、SQL UNION 和 UNION ALL 的基本概念 **UNION** 和 **UNION ALL** 是 SQL 语言中用于合并两个或多个 SELECT 语句结果集的关键字。这两种操作符都可以帮助我们...

    MySQL UNION 与 UNION ALL 语法与用法.docx

    MySQL UNION 与 UNION ALL 语法与用法 MySQL UNION 语法用于把来自多个 SELECT 语句的结果组合到一个结果集合中。其语法格式为:SELECT column,... FROM table1 UNION[ALL] SELECT column,... FROM table2...其中,...

    SQL语句之Union和Union All的用法

    在SQL查询中,`UNION` 和 `UNION ALL` 是两种用于合并多个查询结果集的方法,它们在处理数据集合时具有重要的作用。本篇文章将详细介绍这两种操作符的使用及它们之间的区别。 首先,让我们来看一下 `UNION`。`UNION...

    sql Union和Union All的使用方法

    在SQL中,`UNION`和`UNION ALL`是用来合并多个查询结果的两种方法,它们主要用于处理来自不同数据表的数据。尽管它们的功能相似,但它们在处理重复数据时的行为有所不同。 首先,让我们来理解`UNION`。`UNION`操作...

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

    总结以上内容,本文主要讲述了MySQL中UNION ALL用法的基本概念、在不同版本的MySQL中UNION ALL的性能差异,以及如何通过理解执行计划来优化数据库操作。此外,还提到了与MariaDB的对比以及OCR扫描技术可能带来的问题...

    sqlserver Union和SQL Union All使用方法

    在SQL Server中,`UNION`和`UNION ALL`是两种重要的查询操作符,用于合并来自多个`SELECT`语句的结果集。它们在数据整合和分析时非常有用,尤其当你需要从不同的表或者同一表的不同子集获取数据时。 **SQL UNION ...

    MySQL如何使用union all获得并集排序

    首先,我们要理解`UNION ALL`的基本用法。`UNION ALL`会连接所有`SELECT`语句的结果,不去除重复行。如果不需要去除重复行,使用`UNION ALL`比`UNION`更有效率,因为它跳过了去重步骤。 在这个例子中,为了满足新的...

    MySQL中UNION与UNION ALL的基本使用方法

    在MySQL中,`UNION` 和 `UNION ALL` 是用于合并多个`SELECT`语句结果的两种方式,它们在处理结果集时有着显著的区别。本文将深入探讨这两种操作符的使用方法及其性能差异。 首先,`UNION` 操作符用于合并两个或多个...

    sql 查询结果合并union all用法_数据库技巧

    代码如下:–合并重复行 select * from A union select * from B –不合并重复行 select * from A union all select * from B 按某个字段排序 –合并重复行 select * from ( select * from A union select * from B) ...

    sqlserver union

    下面我们将深入探讨`UNION`的用法、语法以及其与`UNION ALL`的区别。 ### UNION的基本用法 1. **基本语法**: `UNION`的基本语法结构如下: ```sql SELECT column1, column2, ... FROM table1 UNION SELECT ...

    MySQL Union合并查询数据及表别名、字段别名用法分析

    本文实例讲述了MySQL Union合并查询数据及表别名、字段别名用法。分享给大家供大家参考,具体如下: union关键字 SELECT s_id, f_name, f_price FROM fruits WHERE f_price < 9.0 UNION ALL SELECT s_id, f_name...

    详解MySQL中UNION的用法

    `UNION` 和 `UNION ALL` 是MySQL中合并数据的强大工具,它们可以帮助你从多个源获取和整合信息。在处理大型数据库和需要合并不同表格数据的场景中,这两个关键字非常有用。了解何时使用 `UNION`(去重)和 `UNION ...

    SQL中JOIN和UNION区别、用法及示例介绍

    在SQL中,JOIN和UNION是两种非常重要的操作,它们用于处理多个表的数据结合,但它们的作用和原理有所不同。 JOIN操作主要用于将两个或更多表的数据根据特定条件进行合并。JOIN有四种基本类型: 1. INNER JOIN(内...

    用C#实现对DataTable的JOIN,GROUP BY,FILTER,UNIONALL,DISTINCT

    用C#实现对DataTable的JOIN,GROUP BY,FILTER,UNIONALL,DISTINCT

Global site tag (gtag.js) - Google Analytics