2012-07-27 93 views
2
Table 1 
Account ID Account name 
Missing  Agreete NV. 


Table 2 
Account ID Account name 
XXX4546778 Agreete 

我必须在表1中根据查看两个表中帐户名称的最佳匹配获取所有帐户ID。模式匹配sql算法

我想过像,PATINDEX &同音。

思考它我在想比较完整的字符串,如果没有匹配,然后比较完整的字符串-1,如果不匹配,然后比较完整的字符串-2,直到你得到一个匹配。

但是一定有人想出了模式匹配算法的SQL将与低错误率做到这一点。有任何想法吗 ?

+1

一个很好的这些使得业主很多钱:) – Randy 2012-07-27 15:40:27

+0

詹姆斯,这是一个很好的问题,我渴望看到可能的解决方案 – 2012-07-27 15:41:46

回答

1

也许我在想念你的问题点,但在我看来,你的完全匹配像你说的

update t1 
set [account id] = t2.[account id] 
from table1 t1 
inner join table2 t2 on t1.[account name] = t2.[account name] 
where t1.[account id] = 'missing' 

而且你有部分匹配

update t1 
set [account id] = t2.[account id] 
from table1 t1 
inner join table2 t2 on t1.[account name] like t2.[account name] + '%' 
where t1.[account id] = 'missing' 

的顺序运行。 ..