有没有人知道如何编写SQL Server脚本来检查表中是否包含重复的电话号码?
示例:
我有一个名为customer的表,其中包含以下数据
name telephone
alvin 0396521254
alan 0396521425
amy 0396521425
我该如何在SQL Server中编写一个脚本,以返回那些具有重复电话号码的记录?
有没有人知道如何编写SQL Server脚本来检查表中是否包含重复的电话号码?
示例:
我有一个名为customer的表,其中包含以下数据
name telephone
alvin 0396521254
alan 0396521425
amy 0396521425
我该如何在SQL Server中编写一个脚本,以返回那些具有重复电话号码的记录?
查看包含重复值的数值:
SELECT c.telephone
FROM CUSTOMER c
GROUP BY c.telephone
HAVING COUNT(*) > 1
要查看表格中与这些重复项相关的记录:
SELECT c.*
FROM CUSTOMER c
JOIN (SELECT c.telephone
FROM CUSTOMER c
GROUP BY c.telephone
HAVING COUNT(*) > 1) x ON x.telephone = c.telephone
;WITH Duplicates AS (
SELECT Telephone
FROM Table
HAVING COUNT(1) > 1
)
SELECT t.*
FROm Table t INNER JOIN
Duplicates d ON t.Telephone = d.Telephone
或者甚至是像这样的东西
SELECT *
FROM Table t
WHERE EXISTS (
SELECT 1
FROM Table tI
WHERE tI.Telephone = t.Telephone
AND tI.Name != t.Name
)
我相信会有人提出更好的解决方案,但我还是给出我的简陋方法。
如果是我,我会使用聚合COUNT函数和GROUP BY子句。
我会编写如下的SQL语句:
SELECT telephone, COUNT(telephone)[Entries] FROM table1
GROUP BY telephone
HAVING Entries > 1
这应该返回任何重复的电话号码,并计算有多少个重复存在。