SQL:提取不同的值
我有一张有两张桌子的桌子SQL:提取不同的值,sql,oracle-sqldeveloper,Sql,Oracle Sqldeveloper,我有一张有两张桌子的桌子 EmpID Beneifts 1 A 1 B 2 A 3 A 3 c 4 A 我的预期输出就是empId,只有一个好处 EmpID Benefits 2 A 4 A 请帮我查询。使用不存在返回一行相同的EmpID,除了“a”之外没有任何好处: select * from tablename t1 where t1.Benefits = 'A' and not
EmpID Beneifts
1 A
1 B
2 A
3 A
3 c
4 A
我的预期输出就是empId,只有一个好处
EmpID Benefits
2 A
4 A
请帮我查询。使用
不存在
返回一行相同的EmpID,除了“a”之外没有任何好处:
select *
from tablename t1
where t1.Benefits = 'A'
and not exists (select 1 from tablename t2
where t2.EmpID = t1.EmpID
and t2.Benefits <> 'A')
分享你的研究成果对每个人都有帮助。告诉我们您尝试了什么,以及为什么它不能满足您的需求。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另见。记住,这不是免费的代码服务!为什么第二个是最小值/最大值<代码>其中benefits='a'的计数(benefits)=1@MarcB不够,将返回'b'和任何其他值too@MarcB,也可能有明显的好处。
select EmpID
from tablename
group by EmpID
having min(Benefits) = 'A'
and max(Benefits) = 'A'