SQL Server中的联合连接(union)

零、码仙励志

现在不玩命,将来命玩你,现在不努力,未来不给力

一、建库和建表

create database scort
use scort
create table emp
(
	员工编号 int,
	员工姓名 nvarchar(10),
	员工工资 int,
	上司编号 int
)
insert into emp values (1001,'smith',2000,1002);
insert into emp values (1002,'allen',2100,1004);
insert into emp values (1003,'ward',2100,1004);
insert into emp values (1004,'jones',2200,1006);
insert into emp values (1005,'martin',2200,1006);
insert into emp values (1006,'blake',3000,null);

二、联合连接的用法 

1.解释:把表和表之间的数据以纵向的方式连接在一起

2.注意,若干个select子句要联合成功的话,必须满足俩个条件:

  1. 这若干个select子句输出的列数必须是相等的
  2. 这若干个select子句输出的数据类型是兼容的

3.实例演示:

--输出每个员工的姓名,工资,上司的名字
--这样不能把没有上司的员工的信息输出
select "E1".员工姓名,"E1".员工工资,"E2".员工姓名 "上司姓名"
	from emp "E1"
	join emp "E2"
	on "E1".上司编号="E2".员工编号

 

接下来使用联合连接实现

--输出每个员工的姓名,工资,上司的名字
select "E1".员工姓名,"E1".员工工资,"E2".员工姓名 "上司姓名"
	from emp "E1"
	join emp "E2"
	on "E1".上司编号="E2".员工编号
	union
select 员工姓名,员工工资,'没有上司' from emp where 上司编号 is null

猜你喜欢

转载自blog.csdn.net/tswc_byy/article/details/82021182