首页 > 解决方案 > Oracle regexp_replace - 删除尾随空格

问题描述

我正在寻求有关从队列名称中删除尾随空格的帮助。以下是我正在使用的表的示例:

QUEUE_NAME
Queue A 
Queue B
Queue C 

我遇到的问题是队列名称末尾有一个额外的空格,并且在尝试以下代码时:

SELECT
 TRIM(TRAILING ' ' FROM QUEUE_NAME)
FROM
 TABLE_QUEUE;

空间还在。

我正在阅读来自 Google 的搜索,并遇到以下代码以删除特殊字符 [ https://community.oracle.com/blogs/bbrumm/2016/12/11/how-to-replace-special-characters-in- oracle-sql],这删除了所有空格,包括最后的空格。我写的代码:

SELECT
     REGEXP_REPLACE(QUEUE_NAME, '[^0-9A-Za-z]', '')
    FROM
     TABLE_QUEUE;

我现在唯一的问题是我的结果如下所示:

QUEUE_NAME
QueueA
QueueB
QueueC

我从来没有真正使用过 regexp_replace 因此不确定我需要更改代码以在队列名称之间留下空格,所以如果有人能就我如何解决这个问题提出建议,我将不胜感激。

提前致谢。

---- 代码编辑为不应包含[.!?]+

标签: sqloracleregexp-replace

解决方案


您可以尝试trim仅在以下选择语句中使用:

with t(col0) as
(
 select ' Queue A  ' from dual union all
 select '   Queue B ' from dual union all
 select ' Queue C  ' from dual 
)
select trim(col0)
  from t;

trimmedText
-----------
Queue A
Queue B
Queue C

你周围没有周围的空间。


推荐阅读