用一个替换所有出现的多个whilespace字符

时间:2016-01-27 09:17:02

标签: sql oracle replace

输入:

Rammar  Narayana raja  Rani.

输出:

Rammar Narayana raja Rani.

在C#代码中,我会这样做:

    while (name.Contains("  "))
    {
        name = name.Replace("  ", " ");
    }

用单个空格替换double,并且应该存储在同一个变量中。但是在这里,我希望将字符串中的多个空格替换为一个空格,以用于所有出现。我怎么能在Oracle SQL中做到这一点?

2 个答案:

答案 0 :(得分:5)

尝试这种方式:

SELECT REGEXP_REPLACE('aa      b     cc     d  e f ', '( ){2,}', ' ')
FROM DUAL;

详情请见here;这是其中一个例子。

答案 1 :(得分:4)

SELECT REGEXP_REPLACE ( 'Rammar    Narayana   raja    Rani.', '  +', ' ' )
FROM   DUAL;

或者如果你想要替换任何空格,那么:

SELECT REGEXP_REPLACE ( 'Rammar    Narayana   raja    Rani.', '\s+', ' ' )
FROM   DUAL;