我需要在旧数据库中进行大量更改。我在excel表中确实有旧值和新值。我可以在SQL中执行任何操作以从“旧”单元格(从Excel)中查找值并替换为“新”单元格中的值吗?
答案 0 :(得分:1)
让我们说新值在A列中,旧值在B列中。
然后在C列第一行中放入以下类型的公式:
="UPDATE mytable set mycolumn='"& A1 & "' WHERE mycolumn='" & B1 & "';"
(并填写所有行)。你需要根据自己的情况调整它,但我希望你明白这一点。
最后,将结果复制粘贴到文本文件中,并将其传递给数据库的SQL命令行工具,或者您要使用的任何SQL接口。
您还可以创建一些连接到数据库并执行这些SQL的VBA宏。在这种情况下,您可以考虑不使用公式来创建Update SQL,而是直接使用VBA字符串操作。
为了替换文本列中的文本(如链接),生成的SQL需要看起来不同。您没有提到您正在使用的DBMS,系统之间的语法不同。例如,使用MSSQL according to the docs时,生成的SQL应如下所示:
UPDATE mytable SET mycolumn=REPLACE(mycolumn,'oldvalue','newvalue')
请注意,这些值的执行顺序在这里可能很重要,如果一个替换生成一个新的字符串,该字符串将在以后应用替换。