请参阅下表
Employee Name | ZIP CODE
--------------+----------
A | 12345
B | 45678
C | 12345
D | 12345
D | 98765
我想通过传递员工姓名来获得不同的邮政编码,即如果我通过A,则仅返回一条记录,但是如果我通过A,B,则不会返回任何记录,因为两行都没有通用邮政编码。
如果我通过A和D,则仅应返回1345个邮政编码。
如何使用SQL查询获得结果?
答案 0 :(得分:0)
您可以使用group by
和having
进行此操作:
select zip_code
from t
where employee_name in ('A', 'B')
group by zip_code
having count(*) = 2; -- number of employees in list
这假设行是唯一的。如果可能存在重复,则将count(*)
更改为count(distinct employee_name)
。