使用SQL Server 2014,如何更正拼写列中的值(需要代码)?
以下是我的数据示例:
fID Country
-------------------------------
1 pakistan
2 bangladish (mar, 2016)
3 vitnam (jul, 2015)
4 hondoras (2000)
5 japan (apr, 2015)
6 marocco (2001)
如您所见,country
列中存在拼写错误。我需要的是修复这些拼写错误而不改变其他任何东西 - 只是国名。
像这样:
CorrectCountry
---------------
Morocco
Bangladesh
Vietnam
Honduras
我已经创建了一个包含拼写正确的国家/地区名称的表格。但我不确定如何使用它,或者有任何具体的方法来纠正它。
注意:我有超过2000条记录 - 我无法手动修复它,国家也是57个名字
理想的表格:
fID Country
--------------------
1 Pakistan
2 Bangladesh (mar, 2016)
3 Vietnam (jul, 2015)
4 Honduras (2000)
5 Japan (apr, 2015)
6 Morocco (2001)
答案 0 :(得分:0)
为此请求提供完全自动化的解决方案非常困难。 您可以在多次迭代中更正数据
步骤1:标记完全匹配的记录。这有助于减少手动交互所需的记录数量。
UPDATE t1
SET t1.IsValidated = 1
FROM country t1
INNER JOIN CorrectCountry t2 ON T2.Country = T1.Country
WHERE ISNULL(t1.IsValidated,0) = 0
GO
步骤2:使用SOUNDEX标记匹配的记录。始终需要手动验证。在进行更新之前浏览选择列表中的数据
SELECT * FROM country t1
INNER JOIN CorrectCountry t2 ON SOUNDEX(T2.Country) = SOUNDEX(T1.Country)
UPDATE t1
SET t1.Country = t2.Country
, t1.IsValidated = 1
FROM country t1
INNER JOIN CorrectCountry t2 ON SOUNDEX(T2.Country) = SOUNDEX(T1.Country)
WHERE ISNULL(t1.IsValidated,0) = 0
GO
第3步:还有待处理的内容?我建议手动比较
SELECT * FROM country t1
WHERE ISNULL(t1.IsValidated,0) = 0