查询仅获取Oracle和Java的记录

时间:2016-09-15 06:55:49

标签: sql

我有下表:

员工表:

Id   skillset

1    O
2    J
2    O
3    J
4    J
4    O 
5    O
5    J
5    U

我想要一个查询只获得那些技能组合为O和J(Oracle和java)的人员 这意味着只有2和4,甚至不是5 bex它具有技能组合unix。

1 个答案:

答案 0 :(得分:2)

GROUP BY。使用HAVING确保id有两个不同的技能组值,并且没有O和J的其他值:

select id
from tablename
group by id
having count(distinct skillset) = 2
   and count(case when skillset not in ('O','J') then 1 end) = 0