首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接两个表,但为一个列值优先于另一个列值设置先例

连接两个表,但为一个列值优先于另一个列值设置先例
EN

Stack Overflow用户
提问于 2018-01-23 06:13:04
回答 1查看 27关注 0票数 0

想象一下人力资源系统和员工评估系统。所有员工都接受一次评估,但员工可能为两个不同的HR工作。我想将这两个合并在一起,但只获得一行员工评估和HR记录。问题是,对于两个系统中的任何员工,您都会得到两行。可以将一个值设置为优先于另一个值吗?如果一个员工在一个系统中工作,那么很明显我们将需要使用该系统。但如果他们在

代码语言:javascript
复制
create table #eval (
    employeeid int,
    score int
)
insert into #eval
values
(1,5),
(2,3),
(3,4),
(4,4)

create table #hr (
    employeeid int,
    sourcesystem int
)
insert into #hr
values
(1,1),
(1,2),
(2,1),
(3,2),
(4,3)

加入employeeid不符合此标准,但当发生冲突时,我希望sourcesystem = 1胜过sourcesystem = 2sourcesystem = 3

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-23 06:15:49

如果希望源1作为结果,则使用MIN;如果希望源3或更高的值,则使用MAX

代码语言:javascript
复制
select 
e.employeeid,
min(h.sourcesystem) minsourcesystem
 from #eval e
inner join #hr h
on e.employeeid = h.employeeid
group by e.employeeid



employeeid  minsourcesystem
----------- ---------------
1           1
2           1
3           2
4           3
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48391091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档