Sql server 如何在Ms SQL server中找到具有2个匹配列的重复项?

Sql server 如何在Ms SQL server中找到具有2个匹配列的重复项?,sql-server,Sql Server,我有[RecToProcessId,intContactId,vchr company,Old company Title,vchr lastname,vchr firstname,Designation,vchr地址1,vchr地址2,vchr电话号码,vchr业务号码,vchr手机号码,vchr传真号码,Email旧的,Email新的,国家,vchr业务城市,vchrZipCode,STD代码,ISD代码,数据更新日期,城市标志,记录状态,CompanyUrl,ContactUrl] 一个表

我有[RecToProcessId,intContactId,vchr company,Old company Title,vchr lastname,vchr firstname,Designation,vchr地址1,vchr地址2,vchr电话号码,vchr业务号码,vchr手机号码,vchr传真号码,Email旧的,Email新的,国家,vchr业务城市,vchrZipCode,STD代码,ISD代码,数据更新日期,城市标志,记录状态,CompanyUrl,ContactUrl] 一个表中包含50000条以上记录的列 我已经试着用Email_新专栏找到重复的记录,但也有一些垃圾邮件

{SELECT *
into INDIVIDUAL_DEDUPE_DATA
FROM (SELECT *, COUNT(*) OVER (PARTITION BY vchrEmail) AS dup_key
  FROM FINAL_RECEIVED_COMBINED_INDIVIDUAL_UNCLEANED_NON_COMPANY
 ) T
WHERE vchrEmail is not null
and len(vchrEmail)<>0
and dup_key>1
and vchrEmail<>'0'
and vchrEmail<>'-'
and vchrEmail not like '%abc%'
and vchrEmail not like '%xyz%'
and vchrEmail not like '%email%'
and vchrEmail not like '%info%'
and vchrEmail not like '%no@email%'
and vchrEmail not like '%no@gmail%'
and vchrEmail not like '%test%'
and vchrEmail not like '%test@test%'
and vchrEmail not like '%xxx%'
and vchrEmail not like '%xxx@xxx%'
and vchrEmail not like '%xy@%'
ORDER BY vchrEmail}
如何在vchrMobileNo和vchrFirstName+vchrLastName作为名称列上找到重复项 还是其他方式?

答案是按

将返回两个指定列中有多行具有相同值的行。一旦有了这些信息,就可以将其用作子查询来处理这些行。要查看其中的所有列,请执行以下操作:

select outer.*
from theTable outer
  inner join (select col1, col2
              from theTable
              group by col1,col2
              having count(1) > 1) as inner
     on outer.col1 = inner.col1 and outer.col2 = inner.col2
答案是按…分组

将返回两个指定列中有多行具有相同值的行。一旦有了这些信息,就可以将其用作子查询来处理这些行。要查看其中的所有列,请执行以下操作:

select outer.*
from theTable outer
  inner join (select col1, col2
              from theTable
              group by col1,col2
              having count(1) > 1) as inner
     on outer.col1 = inner.col1 and outer.col2 = inner.col2

基于您的问题,我认为您正在寻找不同的方法来查找重复项,而不是语法本身。如果是这样的话,我的方法就是更好地理解这些数据是如何生成的。一旦您知道了这一点,您就可以看到重复是如何发生的,这将为您提供其他方法来清理数据。我不认为你在寻求SQL方面的帮助更多方法/途径对吗?可能重复感谢大家的回答和建议@xQbert-我需要SQL编码方面的帮助只是我尝试了不同的方法,但我有大约60K条记录,共42列。有谁能帮我在vchrMobileNo和vchrFirstName+vchrLastName为一列基于您的问题,我认为您正在寻找不同的方法来查找重复项,而不是语法本身。如果是这样的话,我的方法就是更好地理解这些数据是如何生成的。一旦您知道了这一点,您就可以看到重复是如何发生的,这将为您提供其他方法来清理数据。我不认为你在寻求SQL方面的帮助更多方法/途径对吗?可能重复感谢大家的回答和建议@xQbert-我需要SQL编码方面的帮助只是我尝试了不同的方法,但我有大约60K条记录,共42列。有谁能帮我在vchrMobileNo和vchrFirstName+vchrLastName为一列感谢您的帮助@Richard如果我必须在vchrMobileNo列上找到重复的10位数或更多位数,您能帮我吗?有没有办法找到最后5-6位匹配位数的重复项???@SushantSaldur您需要使用适用的SQL Server字符串函数来提取和比较仅是group by和/或join子句中字符串的一部分。感谢您的帮助@Richard如果我必须在vchrMobileNo列上找到重复的字符串,该列有10个或更多数字,并且是否有任何方法可以在最后5-6个匹配数字上找到重复的字符串???@SushantSaldur您需要使用适用的SQL Server字符串函数提取并比较GROUPBY和/或join子句中字符串的一部分。