SQL 服务器替换为多个 SUBSTRING SSMS

SQL Server Replace with multiple SUBSTRING SSMS

例如,我想一次更改多个子字符串 '0100001000100' 所需的输出。 ' |美国广播公司 | | | |东风集团 | | |高 | |'

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

但不起作用。

非常不清楚你的输入是如何变成你想要的输出的。但是,希望这会消除您对 REPLACE 函数的困惑。

REPLACE(targetstring, str1, str2) 将在 targetstring 中找到每个出现的 str1,并将其替换为 str2。所以 REPLACE('I know John and John knows me', 'John', 'Fred') 会产生字符串 'I know Fred and Fred knows me'.

要将 REPLACE 链接在一起,以便第一个 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')
+ ...