我有一张桌子上有州,市,镇和邮政编码。邮政编码有重复的数据,因为一些邮政编码有多个城镇。现在我需要一个查询来返回所有4列,但是我不想在结果中重复邮政编码。我只想每个邮政编码返回1条记录。如果有多个城镇,我想在结果记录中返回“-----------”以表示多个城镇。Distinct Values
我该怎么做?
我有一张桌子上有州,市,镇和邮政编码。邮政编码有重复的数据,因为一些邮政编码有多个城镇。现在我需要一个查询来返回所有4列,但是我不想在结果中重复邮政编码。我只想每个邮政编码返回1条记录。如果有多个城镇,我想在结果记录中返回“-----------”以表示多个城镇。Distinct Values
我该怎么做?
SELECT CASE WHEN COUNT(Town) > 1 THEN '-----' ELSE MIN(Town) END AS Town, Zip
FROM YourTable
GROUP BY Zip
编辑:,如果你也想返回其他领域,如国家,只需添加上如:
SELECT
CASE WHEN COUNT(Town) > 1 THEN '-----' ELSE MIN(Town) END AS Town,
CASE WHEN COUNT(Town) > 1 THEN '-----' ELSE MIN(State) END AS State,
Zip
FROM YourTable
GROUP BY Zip
我假设邮政编码只能与一个城市,州。
SELECT State
, City
, CASE WHEN MAX(Town) <> MIN(Town) THEN '-------' ELSE MAX(Town) END as Town
, ZipCode
FROM data
GROUP BY State, City, ZipCode
soomething like that?不知道它与其他选项有多高效。
编辑:我同意COUNT是一种更清晰的方式来表达这