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

Raj*_*h D -1 sql oracle replace

输入:

Rammar  Narayana raja  Rani.
Run Code Online (Sandbox Code Playgroud)

输出:

Rammar Narayana raja Rani.
Run Code Online (Sandbox Code Playgroud)

在C#代码我oculd这样做:

    while (name.Contains("  "))
    {
        name = name.Replace("  ", " ");
    }
Run Code Online (Sandbox Code Playgroud)

用单个空格替换double,并且应该存储在同一个变量中.但是在这里,我希望将字符串中的多个空格替换为一个空格,以用于所有出现.我怎样才能在Oracle SQL中执行此操作?

Ale*_*sej 5

试试这种方式:

SELECT REGEXP_REPLACE('aa      b     cc     d  e f ', '( ){2,}', ' ')
FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

有关详情,请参阅此处 ; 这是其中一个例子.