2012-07-27 147 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' 

的順序運行。 ..