11、SQL Server 使用联接和联合合并数据之联合

使用联接和联合合并数据之联合

在关系代数中,联合是加法,而联接是乘法,联合沿垂直方向扩展,而联接

沿水平方向扩展行。

基本语法:

select 语句1

union  [ all ]

select 语句2

创建联合查询时必须遵循下述规则

1、列名和别名必须在第一个Select语句中指定

2、每个Select语句指定的列数必须相同,且对应列的数据类型必须是兼容的

3、可以在Select语句中使用表达式指定列的来源,条件是在每个Select语句中都包含

该列。

4、可以在Select into 中使用联合,但关键字into必须放在第一个Select 语句中。

5、除非指定了关键字Distinct,否则Select 命令默认返回所有的行,

而联合的默认行为与此相反。所以如果要返回所有的行,必须指定关键字all

union all

如:select id 列1  from bumen

union 

select id from zhiwei order by 列1 

结果:

列1

1

2

3

4

5

6

7

8

select id 列1  from bumen

union all

select id from zhiwei order by 列1 

结果:

列1

1

1

2

2

3

3

4

4

5

5

6

6

7

7

8

6、Order by子句对所有 Select的结果进行排序,必须放在最后一个Select中,但

它使用第一个Select指定的列名。

如:select id 列1,bmname 列2  from bumen

union 

select id,zwname from zhiwei order by 列1 

一、交联合

基本语法:

select 语句1

intersect 

select 语句2

:在垂直方向上查找公有的行(select 指定的所有的列的值),查找两个数据集共有的行。

注:内联接在水平方向查找共有的行,交联合查询与内联接的类似之处在于,都根据匹配

来决定不否返回相应的行,然而,交联合查询将空值视为相同,进而在结果中包含相应的

行,而内联接将空值视为不同。因此不返回相应的行。

如:select id 列1  from bumen

intersect 

select id from zhiwei order by 列1 

结果:

列1

1

2

3

4

5

6

7

其中bumen表中的id值为1 -7,zhiwei表中的为1-8

二、差联合

基本语法:

select 语句1

except

select 语句2

返回只在第一个数据集中出现的行,

注:这里说的相同是指两行数据中Select 指定的列的值全相同

如:

select id from zhiwei 

except

select id 列1  from bumen

结果:

8

select id 列1  from bumen

except

select id from zhiwei 

结果:空

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值