我正在编写一个查询,该查询需要在与城市名称匹配的邮政编码数据库中查找不同的城市/州/国家/地区位置。这些列是:
Country, PostalCode, City, State, StateAbbr, County, CountryCode, Latitude, Longitude
结果集需要包含所有这些列。
以查询字符串:“Brooklyn”为例,我至少可以为每一行分配一个排名,如下所示:
select b.*,
(select count(*) from PostalCodes b2
where b.City = b2.City AND b.[State] = b2.[State] AND b.Country = b2.Country) as Rank
from PostalCodes b
where b.City LIKE 'Brooklyn%'
结果集有 66 行,其中 14 行是数据库中具有单个条目的位置,因此它们的排名为 1。其余 52 行是纽约布鲁克林的,它在数据库中有 52 个条目,并分配了排名52.
如何根据排名获取不同的行,并获取数据库中的所有列?我不在乎返回哪个邮政编码......我只想要每个城市/州/国家的一个条目。
我正在使用 SQL Server 2008。