2011-07-20 36 views
0

我必须对数据库中的字段应用单词更正。这些更正是缺少的法国口音。我有两个表格,一个是公司数据和一个公司名称字段,可能会遗漏特定单词的某些重音,另一个表格包含需要重音的已知单词集合。在SQL Server中匹配和替换单词

ID CompanyName       ID Word 
------------------------------   --------------------------- 
1 Jim Desormeaux Electrique   1 Désormeaux 
2 Entreprises D Desormiers Inc.  2 Électrique 
              3 Désormiers 

我想创建一个查询,将seached为配合公司名称中,在第一个表,并在第二版的版本替换匹配的单词的单词。喜欢这个。

ID CompanyName      
------------------------------   
1 Jim Désormeaux Électrique    
2 Entreprises D Désormiers Inc. 

现在,我知道我可以使用归类“Latin1_General_CI_AI”的说法,这样有口音的话将与字不匹配口音。所以我可以做这样的事情。

UPDATE C 
SET C.CompanyName = REPLACE(C.CompanyName, AWR.Word, AWR.Word) 
FROM Companies C 
INNER JOIN AccentsWordRepository AWR ON C.ListingName LIKE '% ' + AWR.Word + ' %' 
    OR C.ListingName LIKE '%' + AWR.Word + ' %' 
    OR C.ListingName LIKE '% ' + AWR.Word + '%' 

这里的问题是,这实在是太慢了,我想知道是否会有更好的方法来做到这一点。

谢谢。

回答

0

几年前,我必须提高处理大量字符串的存储过程的性能,通过将处理逻辑转移到部署到Sql Server的CLR程序集中获得最佳结果,但不确定它是否会对您有所帮助但无论如何,你可以试试看。

Here is,我只是发现了一个例子,但肯定你可以自己搜索一下

+0

谢谢,我会研究一下。 –