Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL-仅选择冲突的值_Sql_Sql Server_Tsql - Fatal编程技术网

SQL-仅选择冲突的值

SQL-仅选择冲突的值,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个包含以下列的表[SQL Server 2008 R2] 姓氏 出生日期 拉链 住址 电话 电子邮件 我需要找到所有相同的姓氏,出生日期,邮政编码,地址有冲突的电话和电子邮件和编辑距离的冲突 我已经有了编辑距离的自定义项,但我无法提出查询 注意:我的表格中可以有两个以上的副本。这是您想要的吗: select * from table t join table t2 on t.lastname = t2.lastname and t.dob = t2.dob and

我有一个包含以下列的表[SQL Server 2008 R2]

姓氏 出生日期 拉链 住址 电话 电子邮件 我需要找到所有相同的姓氏,出生日期,邮政编码,地址有冲突的电话和电子邮件和编辑距离的冲突

我已经有了编辑距离的自定义项,但我无法提出查询

注意:我的表格中可以有两个以上的副本。

这是您想要的吗:

select *
from table t join
     table t2
     on t.lastname = t2.lastname and t.dob = t2.dob and
        t.zip = t2.zip and t.address = t2.zip
where edit_distance(t.phone, t2.phone) > @threshhold or
      edit_distance(t.email, t2.email) > @threshhold;

您可能需要一个自联接

select t1.*, edit_distance(t1.Phone, t2.Phone) EditDistancePhone, edit_distance(t1.Email, t2.Email)EditDistanceEmail from 
(select LastName, DOB, Zip, Address, Phone, Email from Table1) t1
inner join 
(select LastName, DOB, Zip, Address, Phone, Email from Table1) t2
on t1.LastName = t2.LastName
and t1.DOB = t2.DOB
and t1.Zip = t2.Zip
and t1.Address = t2.Address
and t1.Phone <> t2.Phone
and t1.Email <> t2.Email

更多关于UDF的细节肯定会帮助这里的人们给出更好的答案。

谢谢,我为没有在我的原始帖子中分享足够的细节而道歉。除了我有两个以上的副本的情况外,这很有效。i、 e.超过2个姓氏、出生日期、邮编、,Address@user3726933然后在问题中说明您希望如何处理2个以上的重复项。@我本可以做得更好,但假设重复项=2也不是很直观。问题已编辑。@user3726933,这样您可以有更多的重复项>2。您还没有说明您希望如何处理该问题?