获取具有共同值的记录

时间:2018-12-15 12:00:43

标签: sql .net

请参阅下表

Employee Name | ZIP CODE 
--------------+----------
A             |  12345    
B             |  45678    
C             |  12345    
D             |  12345 
D             |  98765    

我想通过传递员工姓名来获得不同的邮政编码,即如果我通过A,则仅返回一条记录,但是如果我通过A,B,则不会返回任何记录,因为两行都没有通用邮政编码。

如果我通过A和D,则仅应返回1345个邮政编码。

如何使用SQL查询获得结果?

1 个答案:

答案 0 :(得分:0)

您可以使用group byhaving进行此操作:

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)