【发布时间】:2013-02-21 07:36:16
【问题描述】:
我有一个包含文本列的table A。
在我的存储过程中,我有一个临时表,其中包含两列 - 旧值和新值,有许多行。
我需要用我的table A 的文本列中的临时表中指定的新值替换所有出现的旧值。
表 A 中的文本字段与临时表中的旧值不同,因此我不能使用连接。文本列值可以是“那里什么都没有”。临时表中可能有一行 oldvalue='there' 和 newvalue='here'。
最后,列值应替换为“here is nothing here”。这应该应用于table A 中列的所有行。
一种选择是遍历临时表(不推荐)。有没有更好/优雅/优化的方式来做到这一点?
【问题讨论】:
-
示例数据可能会有所帮助。您的意思是临时表包含例如
(old,new)(dog,wolf),(brown,black)并且您想将字符串“the quick brown fox jumped over the lazy dog”更新为“the quick black wolf jumped over the lazy dog”? -
@MartinSmith - 完全正确。
标签: sql sql-server tsql replace query-optimization