SQL – 8.Union

联合结果集(Union)

union和union区别union 合并结果集并去除重复项,union all 合并结果集不用去除重复项。

  • 执行备注中的代码
  • 简单的结果集联合: 
    SELECT FNumber,FName,FAge FROM T_Employee  
    UNION  
    SELECT FIdCardNumber,FName,FAge FROM T_TempEmployee
  • 基本的原则:每个结果集必须有相同的列数;每个结果集的列必须类型相容


SELECT FNumber,FName,FAge,FDepartment FROM T_Employee 
UNION 
SELECT FIdCardNumber,FName,FAge,’临时工,无部门' FROM T_TempEmployee

image
Union all

SELECT FName FROM T_Employee 
UNION  
SELECT FName FROM T_TempEmployee 

UNION合并两个查询结果集,并且将其中完全重复的数据行合并为一条

 

===============分割线==================

 

SELECT FName FROM T_Employee 
UNION ALL 
SELECT FName FROM T_TempEmployee 

Union因为要进行重复值扫描,所以效率低,因此如果不是确定要合并重复行,那么就用UNION ALL

案例1

  • 要求查询员工的最低年龄和最高年龄,临时工和正式员工
    要分别查询
    SELECT '正式员工最高年龄',MAX(FAge) FROM 
    T_Employee 
    UNION ALL 
    SELECT '正式员工最低年龄',MIN(FAge) FROM 
    T_Employee 
    UNION ALL 
    SELECT '临时工最高年龄',MAX(FAge) FROM 
    T_TempEmployee 
    UNION ALL 
    SELECT '临时工最低年龄',MIN(FAge) FROM 
    T_TempEmployee 

image


案例2

查询每位正式员工的信息,包括工号、工资,并且在最后一行加上所有员工工资额合计。

SELECT FNumber,FSalary FROM T_Employee 
UNION ALL 
SELECT '工资合计',SUM(FSalary) FROM T_Employee

image

posted @ 2012-05-04 11:30  【唐】三三  阅读(250)  评论(0编辑  收藏  举报