需要在oracle中修剪空白区域

时间:2015-01-08 16:55:39

标签: sql oracle plsql oracle11g oracle10g

无法修剪表格中以下数据的空白区域。列数据类型为VARCHAR2(650 CHAR)。我试过修剪功能来消除空白。但那不适合我。

我桌上的数据:

'xxxxxxxxxx yyyyyyyyy - 12/7/14 - 12/13/14   '
'xxxxxxxxxx yyyyyyyyy - 12/7/14 - 12/13/14       '
'xxxxxxxxxx yyyyyyyyy - 12/7/14 - 12/13/14   '

我想修剪下面的数据

'xxxxxxxxxx yyyyyyyyy - 12/7/14 - 12/13/14'
'xxxxxxxxxx yyyyyyyyy - 12/7/14 - 12/13/14'
'xxxxxxxxxx yyyyyyyyy - 12/7/14 - 12/13/14'

请你帮我解决一下。

3 个答案:

答案 0 :(得分:1)

使用Trim功能

select Trim(trailing ' ' from 'xxxxxxxxxx yyyyyyyyy - 12/7/14 - 12/13/14   ') from dual

或使用Rtrim

select RTrim('xxxxxxxxxx yyyyyyyyy - 12/7/14 - 12/13/14   ') from dual

答案 1 :(得分:0)

我会使用REGEXP_REPLACE(),因为其中有其他空格字符,例如标签:

SELECT REGEXP_REPLACE(mydata, '\s+$') AS mydata
  FROM mytable

希望这会有所帮助。如果TRIM()不起作用,那么我怀疑你有其他东西而不是空格。

如果您知道数据将以数字结尾,您可能还会尝试以下操作:

SELECT REGEXP_REPLACE(mydata, '\D+$') AS mydata
  FROM mytable

正则表达式中的\D匹配除数字之外的所有内容,因此将修剪任何不是数字0-9的尾随字符。

答案 2 :(得分:0)

我们还可以使用以下方法修剪左侧和右侧空白

SELECT LTrim(RTrim('xxxxxxxxxx yyyyyyyyy - 12/7/14 - 12/13/14   ')) FROM dual