sql server中UNION 运算符随笔(几个需要注意的地方小总结)

 

UNION 运算符是将两个或更多查询的结果组合为单个结果集

该结果集包含联合查询中的所有查询的全部行。这与使用联接组合两个表中的列不同。

 

使用 UNION 组合查询的结果集有两个最基本的规则:

1。所有查询中的列数和列的顺序必须相同。

2。数据类型必须兼容

a.UNION的结果集列名与第一个select语句中的结果集中的列名相同,其他select语句的结果集列名被忽略

b.默认情况下,UNION 运算符是从结果集中删除重复行。如果使用all关键字,那么结果集将包含所有行并且不删除重复行

c.sql是从左到右对包含UNION 运算符的语句进行取值,使用括号可以改变求值顺序

 

--例如:

select * from tablea

union all

(

select * from tableb

union all

select * from tablec

)

 

这样就可以先对tablebtablec合并,再合并tablea

 

d.如果要将合并后的结果集保存到一个新数据表中,那么into语句必须加入到第一条select

e.只可以在最后一条select语句中使用 order by compute 子句,这样影响到最终合并结果的排序和计数汇总

f.group by having 子句可以在单独一个select查询中使用,它们不影响最终结果

 

--例如:

select name as 姓名,class as 班级,grade as 年级

       into #students

       from stud87

       union all

select * from stud88

       union all

select * from stud89

       order by 年级

 

 

3个班级的合并结果(按grade排序)插入到临时表 #students里面

 

希望上面提到的知识对你有所提示

当然欢迎交流和指正

 

author:aierong

blog:http://www.cnblogs.com/aierong

email:aierong@126.com

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值