我有一个包含文本列的table A
。 在我的存储过程中,我有一个临时表,包含两列 - 旧值和新值,有多个行。 我需要使用在我的table A
中的文本列中的临时表中指定的新值来替换所有旧值的出现。SQL:使用来自另一个表的新旧值替换列中的文本值
表A中的文本字段与临时表中的oldvalue不同,因此我无法使用联接。文本列的值可能是“没有任何内容”。临时表中可能有一行oldvalue ='there'和newvalue ='here'。 最后,列值应该被替换为'这里什么都没有'。这应该适用于table A
中列的所有行。
一种选择是遍历临时表(不是首选)。有没有更好/优雅/优化的方式来做到这一点?
示例数据可能会有所帮助。你的意思是临时表包含例如'(旧的,新的)(狗,狼),(棕色,黑色)',你想更新字符串“快速的棕色狐狸跳过懒惰的狗”到“快速黑狼跳过懒狗“? – 2013-03-06 13:30:28
@MartinSmith - 确实如此。 – ubaid 2013-03-06 13:39:12
可能重复的[用交叉引用临时表 - tsql替换部分字符串大写](http://stackoverflow.com/questions/13918473/replace-part-of-string-with-capitalised-equivalent-from-cross -ref-temp-table -t) – 2013-03-06 13:45:42