如果所有列值都存在,则查询从表中获取行,具体取决于另一列

时间:2016-09-15 12:07:55

标签: sql

我的表有两列,没有定义主键。

说出姓名和薪水

name  salary 
A     100
B     200
B     100
C     100
A     200 

我想要A,B的工资,其中取得的工资不属于任何其他名称 说不同的工资取得A,B是100,200 但是我的结果只会显示200,因为100拥有C

1 个答案:

答案 0 :(得分:1)

GROUP BY。使用HAVING确保薪水有两个不同的名称,也不包括A和B:

select salary
from tablename
group by salary
having count(distinct name) = 2
   and count(case when name not in ('A','B') then 1 end) = 0