sqlserver Union和SQL Union All使用方法

前端之家收集整理的这篇文章主要介绍了sqlserver Union和SQL Union All使用方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

sql UNION 操作符

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的 SELECT 语句必须拥有

相同数量

的列。列也必须拥有

相似的数据类型

。同时,每条 SELECT 语句中的列的

顺序

必须相同。

sql UNION 语法


SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

注释:默认地,UNION 操作符选取不同的值,即

UNION是去了重的

。如果

允许重复的值,请使用 UNION ALL

sql UNION ALL 语法

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

UNION

指令的目的是将两个 sql 语句的结果合并起来。从这个角度来看,

UNION

跟 JOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料。union只是将两个结果联结起来一起显示,并不是联结两个表…………

UNION

的语法如下:

[sql 语句 1]
UNION
[sql 语句 2]

假设我们有以下的两个表格,

Store_Information

表格
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999

Internet Sales

表格
Date Sales
Jan-07-1999 $250
Jan-10-1999 $535
Jan-11-1999 $320
Jan-12-1999 $750

而我们要找出来所有有营业额 (sales) 的日子。要达到这个目的,我们用以下的 sql 语句:

SELECT Date FROM Store_Information
UNION
SELECT Date FROM Internet_Sales

结果:

Date

Jan-05-1999

Jan-07-1999

Jan-08-1999

Jan-10-1999

Jan-11-1999

Jan-12-1999

有一点值得注意的是,如果我们在任何一个 sql 语句 (或是两句都一起) 用 "

SELECT DISTINCT Date

" 的话,那我们会得到完全一样的结果。sql Union All

UNION ALL

这个指令的目的也是要将两个 sql 语句的结果合并在一起。

UNION ALL

UNION

不同之处在于

UNION ALL

会将每一笔符合条件的资料都列出来,无论资料值有无重复。

UNION ALL

的语法如下:

[sql 语句 1]
UNION ALL
[sql 语句 2]

我们用和上一页同样的例子来显示

UNION ALL

UNION

的不同。同样假设我们有以下两个表格,

Store_Information

表格
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999

Internet Sales

表格
Date Sales
Jan-07-1999 $250
Jan-10-1999 $535
Jan-11-1999 $320
Jan-12-1999 $750

而我们要找出有店面营业额以及网络营业额的日子。要达到这个目的,我们用以下的 sql 语句:

SELECT Date FROM Store_Information
UNION ALL
SELECT Date FROM Internet_Sales

结果:

Date

Jan-05-1999

Jan-07-1999

Jan-08-1999

Jan-08-1999

Jan-07-1999

Jan-10-1999

Jan-11-1999

Jan-12-1999

eg:

代码如下:@H_140_403@
SELECT id,Name,DocPinYin FROM doctor
UNION
SELECT 0 AS id,'无医生名' AS Name,'' AS DocPinYin
@H_140_403@结果集是

301/2013010814363510x.png">

SELECT id,DocPinYin FROM doctor

结果集是

301/2013010814363511x.png">

故:union将两个结果集合在一起

猜你在找的MsSQL相关文章