- 使用:在 SQL Server 中,UNION 和 UNION ALL 是用于合并两个或多个 SELECT 查询结果的操作符。
- 两者区别union all 会去重,union 不会去重
- 例子:
两张表:stu:stu_id,name emplyee:em_id,name
需求1:sql实现查询,学生和员工一共多少人
select sum(CL) from
(select count(1) as CL from stu union all select count(1) as CL from empolyee )A
需求2:查询学生和员工和多少人
select ‘学生’ personType,count(1) totalNum from stu [可加条件]
union all
select ‘员工’ personType,count(1) totalNum from empolyee [可加条件]
注意(开发使用总结):1.在使用union all 或者union时,前后两部分查询的字段个数应该相同,字段类型相同或者能够进行自动转换
- 不能再union all 或union 的前后两个查询中分别使用order by,只能在使用了union all之后的总数据进行排序
例如:
select * from (
select stu_id as id,name as name from stu union all select em_id as id,name as name from empolyee
)A order by id desc,name asc