删除字符之间的空格

时间:2015-10-02 09:47:54

标签: sql regex oracle

我在表格中有一列具有以下值的列:

Table1
----------
H e l l o !   W o r l d 
H e l l o   e v e r y o n e ! 
H o w   a r e   y o u ? 

基本上,每个记录每个字符有一个空格(1个空格)。 我们如何删除下面这样的空格?

Table1
----------
Hello! World
Hello everyone!
How are you?

注意:我们无法删除&#34之间的空格;" - 空间 - "" - 空间 - "你"

2 个答案:

答案 0 :(得分:3)

如果您想通过正则表达式解决问题,可以使用named capturing groups。简单地说,regexp_replace( VALUE, '(.) ', '\1' )

with TABLE1 as (
  select 'H e l l o !   W o r l d ' as VALUE from dual union all
  select 'H e l l o   e v e r y o n e ! ' from dual union all
  select 'H o w   a r e   y o u ? ' from dual
)
select VALUE, regexp_replace( VALUE, '(.) ', '\1' ) as REPLACED_VALUE
from TABLE1

结果:

VALUE                          REPLACED_VALUE
H e l l o !   W o r l d        Hello! World
H e l l o   e v e r y o n e !  Hello everyone!
H o w   a r e   y o u ?        How are you?

SQL Fiddle

答案 1 :(得分:2)

SQL中的一种方法。

SELECT REPLACE(REPLACE(REPLACE('H e l   World','  ','#'),' '),'#',' ') from dual;