Oracle SQL 查询删除逗号前的空格

Oracle SQL query to remove whitespace before comma

我有一个逗号分隔的字符串,例如

This,is ,a,beautiful ,summer day

你能帮我去掉“逗号”前的空白,而不去掉两个词之间的space吗?

尝试了以下查询:

SELECT regexp_replace('This,is ,a,beautiful  ,summer day'  , '[[:space:]]', null ) regexp
  FROM dual;

但它删除了夏日之间的 space。

输出:

This,is,a,beautiful,summerday

正如你所说 - 替换它:

SQL> with test (col) as
  2    (select 'This,is ,a,beautiful ,raining day' from dual)
  3           --This,is,a,beautiful,summerday
  4  select replace(col, ' ,', ',') result                 --> this
  5  from test;     

RESULT
-------------------------------
This,is,a,beautiful,raining day

SQL>

您可以使用以下方式替换多个空格:

SELECT regexp_replace(
         'This,is ,a,beautiful  ,summer day'  ,
         '[[:space:]]+,',
         ','
       ) regexp
FROM   dual;

输出:

| REGEXP                         |
| :----------------------------- |
| This,is,a,beautiful,summer day |

db<>fiddle here