SQL SERVER中的UNION和UNION ALL的区别

Union联合连接

  • 把表和表之间的数据以纵向的方式连接在一起
  • 若干个select子句要联合成功的话,必须满足俩个条件:1.这若干个select子句输出的列数必须是相等的2.这若干个select子句输出的数据类型是兼容的
  • 代码:
--输出“每个”员工的姓名,工资,上司的名字
select "E1".员工姓名,"E1".员工工资,"E2".员工姓名 "上司姓名"
	from emp "E1"
	join emp "E2"
	on "E1".上司编号="E2".员工编号--只输出有有上司编号的员工姓名
	union--联合查询
select 员工姓名,员工工资,'没有上司' from emp where 上司编号 is null 

结果集
Union和Union All的区别:

  • 两者都是将多个查询结果集合并为一个,但其使用和效率有所不同。
  • 对查询结果的处理:Union会把查询结果集去除重复数据行(筛选掉重复的数据),而Union All则是全部输出。
  • 对排序的处理:UNION将会按照字段的顺序进行排序;UNION ALL只是简单的将两个结果合并后就返回。
  • 从效率上说,UNION ALL要比UNION快很多。
  • 所以如果不需要去重复和对结果集进行排序,只想简单合并结果集的话,使用Union All效率要更好。
发布了21 篇原创文章 · 获赞 3 · 访问量 350

猜你喜欢

转载自blog.csdn.net/MrLsss/article/details/104078551