SQL中的UNION查询

在使用UNION处理查询时,有几个要点:

1、所有要进行UNION的查询,其SELECT列表中列的数量必须相同。如果第一个查询的列表中有3个列,那么第二个查询(以及所有进行UNION的后续查询)的SELECT列表也必须是3个列。

2、为合并的结果集返回的标头仅取自第一个查询。如果第一个查询的SELECT列表类似这样,SELECT Col1,Col2

AS Second,Col3 FROM...,那么无论后续的查询中列的名称或别名如何,UNION返回的列标头都将分别是Col1、Second以及Col3。

3、一个查询中每一列的数据类型必须与其他查询中相同对应的列的数据类型隐式兼容。注意:这里并不是一定要相同----它们只要能隐式转换即可。如果第一个查询中第二列的数据类型是char(20),那么第二个查询中第二列的数据类型是varchar(30)是可以的。然而,由于一切都是基于第一个查询,因此结果集中第二列所有长度超过20的行将被截断。

4、与非UNION的查询不同,UNION的默认返回方式是DISTINCT而非ALL。在其他的查询中,所有行都将被返回,无论它们是否与别的行有重复,而UNION却不是这样的。除非在查询中使用了ALL关键字,否则只返回一个有重复的行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值