SQL唯一5字符串

时间:2018-07-24 14:29:51

标签: sql count having

我有一个表,其中包含一个Varchar列“ Zip”,其中包含一些5位邮政编码(例如12345)和一些Zip + 4邮政编码(例如12345-9999)。它们都是独一无二的。

如何仅查找前5个字符的重复(或唯一)值?

运行此命令时,我得到29,722条记录,这是表中的总记录,并且我可以清楚地看到Zip 00690和00690-7998均已返回。

SELECT ZIP
FROM tblSTKUniqueZip
GROUP BY ZIP
HAVING COUNT(LEFT(ZIP,5)) = 1

运行此命令时,我得到零记录

SELECT ZIP
FROM tblSTKUniqueZip
GROUP BY ZIP
HAVING COUNT(LEFT(ZIP,5)) > 1

我对HAVING子句不了解什么。我希望它能剩下5个字符,并给我唯一的字符或重复的字符。

1 个答案:

答案 0 :(得分:2)

您需要同时selectgroup by左5个字符。完成分组后,可以使用count(*)确定该组中的实际行数。试试这个:

SELECT LEFT(ZIP,5), count(*)
FROM tblSTKUniqueZip
GROUP BY LEFT(ZIP,5)
HAVING COUNT(*) > 1