我必须对数据库中的字段应用单词更正。这些更正是缺少的法语口音。我有两个表,一个包含公司数据,一个公司名称字段可能缺少特定单词的一些重音,另一个表包含需要重音的已知单词集合。
ID CompanyName ID Word
------------------------------ ---------------------------
1 Jim Desormeaux Electrique 1 Désormeaux
2 Entreprises D Desormiers Inc. 2 Électrique
3 Désormiers
我想创建一个查询,该查询将在第一个表中的公司名称中匹配单词,并将匹配的单词替换为第二个版本中的版本。像这样。
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 :(得分:0)
几年前我要提高处理大量字符串的存储过程的性能,通过将处理逻辑移植到部署到Sql Server的CLR程序集中获得的最佳结果,不确定它是否对您有帮助但是无论如何你可以尝试一下。
Here is我刚刚找到的一个例子,但你肯定可以自己搜索
答案 1 :(得分:0)
SQL Server全文搜索是否为您提供任何可能的解决方案?每个版本都在逐渐变得越来越好,它肯定必须提供一些东西。