【问题标题】:Find duplicate county name in SQL Server在 SQL Server 中查找重复的县名
【发布时间】:2021-05-07 13:47:08
【问题描述】:

我一直在尝试根据StateId 查找州中重复的县名。我曾尝试编写一个有助于查找重复数据的 SQL 查询,但我做不到。

SELECT
    LOWER(Name) COLLATE SQL_Latin1_General_CP1_CI_AI, 
    StateId
FROM
    County (nolock)
GROUP BY
    Name, StateId
HAVING  
   (COUNT(*) > 1)

如果有人可以提供帮助,我会非常高兴。

【问题讨论】:

  • GROUP BY LOWER(Name) collate SQL_Latin1_General_CP1_CI_AI, StateId.
  • 土耳其语中的名称可能不同吗?如果是这样,请按与选择部分中相同的字段进行分组。
  • 旁注:你真的需要NOLOCK吗?你*确实明白它的作用,对吧?对于你正在做的事情,我建议如果正在对表中的数据进行处理,它实际上可能会给你不正确的结果。
  • 请注意示例中的不同名称。例如,我看到单词“BAGCILAR”和“ATASEHIR”至少有两种不同的写法
  • 听起来您可能还想在表上添加约束以停止重复值。

标签: sql sql-server select duplicates


【解决方案1】:

如果您根据stateid 查找重复县和重复县,则需要从group by 查询中删除stateid。如果您要查找不区分大小写的重复项,则需要按 lower(name) 分组,就像您正在查询一样:

SELECT   LOWER(Name) COLLATE SQL_Latin1_General_CP1_CI_AI
FROM     county(nolock)
GROUP BY LOWER(Name) COLLATE SQL_Latin1_General_CP1_CI_AI
HAVING   COUNT(*) > 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2011-02-21
    • 1970-01-01
    • 2011-08-17
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多