SQLServer选择通用元素

时间:2015-06-24 10:17:05

标签: sql sql-server

希望是一个相当简单的SQL,我有一个包含两列的表,街道和城市。鉴于3个街道名称的列表,我如何选择街道上常见的城市?

例如。

Street     City
------     ----
1st St     NYC
2nd St     NYC
3rd St     NYC
1st St     SF
1st St     LA
etc St     XX

如果我有“1st St”,“2nd St”和“3rd St”,哪个查询返回“NYC”?

1 个答案:

答案 0 :(得分:4)

您可以使用group byhaving

select t.city
from table t
where t.street in ('1st st', '2nd st', '3rd st')
group by t.city
having count(distinct t.street) = 3;

这是set-within-sets查询的一个示例,您可以在其中查找另一个(城市)的事物(街道)集合。 Group byhaving是解决此类问题的一种非常灵活的方式。