如何有效地使用SQL替换功能?

时间:2009-02-13 20:48:05

标签: sql tsql ms-access

我正在尝试替换Access数据库中的多行以遵循一组新的数据规则。例如,Fort Myers中的Fort一词被列为Ft。,Ft和Fort。我想对该集团进行全球变革。我熟悉SQL替换命令,但想知道是否有人使用存储过程做过类似的事情或者有类似这样的经历。

4 个答案:

答案 0 :(得分:1)

比外行人听起来更难......

没有办法绕过它,但为你不喜欢的每件事做一个替换,换成你喜欢的东西。但是非常小心......意想不到的后果和所有。我建议在每次更新之前进行选择,以确切了解您要更新的内容。

所以在迈尔斯堡的例子中你必须做3个替换:

Replace("Ft. Myers", "Fort Myers")
Replace("Ft Myers", "Fort Myers")
Replace("Fort. Myers", "Fort Myers")

如果您有大量数据和许多要改变的事情,这可能是一项巨大的任务。但是没有“自动化”的方法 - SQL不使用模糊逻辑,你必须准确指定你想要它做的一切。

答案 1 :(得分:1)

整理地址可能是一场噩梦。您可能需要创建替换表:

ShouldBe    Current
Fort Myers  Ft Myers
Foot Hill   Ft Hills

在大多数情况下,可以使用更新查询填充ShouldBe列,但在更新主表之前,您还可以关注结果。这也将有利于未来的数据输入。

答案 2 :(得分:1)

你必须非常,非常小心,你不能取代比你想要的更多。

首先备案,以防出现严重错误。

始终先使用SELECT来过滤记录。仔细检查结果。

SELECT * FROM Table WHERE City LIKE "%Ft. Myers%" 

然后按照卡尔顿的说法进行替换。

答案 3 :(得分:1)

如果您的目标是使像迈尔斯堡这样的城市名称标准化,您应该能够做到这样的事情:

UPDATE Table SET City = 'Fort Myers' WHERE City LIKE 'F%Myers';

这应该替换城市以F开头并以迈尔斯结尾的任何一行中的任何城市字段。这可能是你想要的,但要非常小心。