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 个字符,要么给我唯一的字符,要么给我重复的字符。
您需要 select
和 group by
压缩包左侧的 5 个字符。完成分组后,您可以使用 count(*)
来确定组内的实际行数。试试这个:
SELECT LEFT(ZIP,5), count(*)
FROM tblSTKUniqueZip
GROUP BY LEFT(ZIP,5)
HAVING COUNT(*) > 1
我有一个 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 个字符,要么给我唯一的字符,要么给我重复的字符。
您需要 select
和 group by
压缩包左侧的 5 个字符。完成分组后,您可以使用 count(*)
来确定组内的实际行数。试试这个:
SELECT LEFT(ZIP,5), count(*)
FROM tblSTKUniqueZip
GROUP BY LEFT(ZIP,5)
HAVING COUNT(*) > 1