sql server替换为多个子字符串SSM

i1icjdpr  于 2021-07-27  发布在  Java
关注(0)|答案(1)|浏览(343)

我想同时更改多个子字符串,例如“01000010000100”所需的输出 | | | | dfg | | | | hig | |'

REPLACE(SUBSTRING([column],1,1),' 1 ' ,' XYZ '),SUBSTRING([column],2,1),' 1 ' ,' zzz ')....

但不起作用。

4smxwvx5

4smxwvx51#

现在还不清楚你是如何将你的输入转化为你想要的输出的。不过,希望这能澄清你对 REPLACE 功能。 REPLACE(targetstring, str1, str2) 会发现每一次 str1targetstring 并用 str2 . 所以呢 REPLACE('I know John and John knows me', 'John', 'Fred') 将导致字符串 'I know Fred and Fred knows me' .
REPLACE s一起,使输出从第一个开始 REPLACE 作为下一次替换的目标,您需要这样的结构:

REPLACE(
  REPLACE(
    REPLACE(
      'I know Fred and Fred knows me', 'Fred', 'Bill'
    ), 'know', 'like'
  ), 'and', 'but'
)

下一点:如果要将每个字符的替换结果串在一起,则不需要将 REPLACE 而是加入他们 + :

REPLACE(SUBSTRING([column],1,1),'1','XYZ')
+
REPLACE(SUBSTRING([column],2,1),'1','zzz')
+ ...

相关问题