SQL 唯一的 5 个字符的字符串

SQL Unique 5 character string

我有一个 table,它有一个 Varchar 列 "Zip",其中包含一些 5 位邮政编码 ex 12345 和一些 Zip+4 邮政编码 ex 12345-9999。它们都是独一无二的。

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

当我 运行 时,我得到 29,722 条记录,这是 table 中的总记录,我可以清楚地看到返回了 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 个字符,要么给我唯一的字符,要么给我重复的字符。

您需要 selectgroup by 压缩包左侧的 5 个字符。完成分组后,您可以使用 count(*) 来确定组内的实际行数。试试这个:

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