在DB2中使用带有连接字符串的REPLACE

时间:2014-04-22 23:27:07

标签: sql replace db2 concat

StringA
StringB
StringC
StringD

我正在连接上面的4个字符串,如下所示

StringA||' '||StringB||' '||StringC||' '||StringD

我希望在上面的连接字符串上使用REPLACE,以便用单个空格替换double空格。我有类似的东西

REPLACE((StringA||' '||StringB||' '||StringC||' '||StringD), '  ',' ')

但是,上述逻辑并没有为我提供结果。

但是,如果我只是将它应用于StringA和StringB,它可以正常工作。我们如何让它适用于完整的字符串?

2 个答案:

答案 0 :(得分:0)

试试regexp:

   regexp_replace(String1||''||String2||.....||Stringn, '[ ]+', ' ' ) 

答案 1 :(得分:0)

首先要做的事情可能是:

REPLACE(( TRIM(StringA)||' '||TRIM(StringB)||' '||TRIM(StringC)||' '||TRIM(StringD)), '  ',' ')

这应该处理尾随空格给出结果中多个空格的子串的所有情况。之后,您只会担心原始的四个字符串是否包含三个或更多空格的子字符串。如果是这种情况,我们可能需要更多地了解所有四个字符串列的定义。