表A是编码表
code name
0001 体系
0002 部门
0003 科室表B是人员表
姓名 体系 部门 科室
张三 0001 0002 0003可不可以查询出来结果为:
姓名 体系 部门 科室
张三 体系 部门 科室
code name
0001 体系
0002 部门
0003 科室表B是人员表
姓名 体系 部门 科室
张三 0001 0002 0003可不可以查询出来结果为:
姓名 体系 部门 科室
张三 体系 部门 科室
(
code varchar(4),
name varchar(4)
)
insert into @a
select '0001','体系' union all
select '0002','部门' union all
select '0003','科室'declare @b table
(
姓名 varchar(4),
体系 varchar(4),
部门 varchar(4),
科室 varchar(4)
)
insert into @b
select '张三','0001','0002','0003'select
姓名,
(select name from @a where code=a.体系) as 体系,
(select name from @a where code=a.部门) as 部门,
(select name from @a where code=a.科室) as 科室
from @b a/*
姓名 体系 部门 科室
---- ---- ---- ----
张三 体系 部门 科室
*/
declare @t table(code varchar(10),name varchar(10))
insert @t select '0001','体系'
union all select '0002','部门'
union all select '0003','科室'
declare @t1 table(姓名 varchar(10),体系 varchar(10),部门 varchar(10),科室 varchar(10))
insert @t1 select '张三','0001','0002','0003'
select A.姓名,B.name,c.name,d.name
from @t1 A inner join @t B on A.体系=B.code
inner join @t C on A.部门=C.code
inner join @t d on A.科室=d.code