我需要用一些映射的字符替换字符串中的字符列表。
我有一个表’dbo.CharacterMappings’,其中有2列:’CharacterToFilter’和’ReplacementCharacter’。
假设此表中有3条记录:
Filter Replacement $ s @ a 0 o
如何根据这些映射替换字符串中的所有过滤器字符?
即“ Hell0 c @ t $”需要成为“ Hello cats”。
我真的想不出任何方法,而不必求助于表变量然后遍历它。即具有一个带有“ count”列的表变量,然后使用循环基于该列一次选择1行。然后,我可以使用REPLACE函数来一次更新一个字符。
编辑:我应该注意,我一直想删除这些字符(例如,我不必担心$ 5-> s5)。
declare @s varchar(50)= 'Hell0 c@t$' select @s = REPLACE(@s, CharacterToFilter, ReplacementCharacter) from CharacterMappings select @s