2016-09-15 13 views
0

我有如下表:查詢獲取記錄只有Oracle和Java

Employee表:

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貝克它具有技能組合unix。

回答

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