Oracle中的TRIM函数使用介绍_转载

声明

  本文转载自https://www.jb51.net/article/53576.htm

Oracle 11g官方文档链接

https://docs.oracle.com/cd/E11882_01/index.htm

正文

  Oracle TRIM函数是很常见的函数,下面对Oracle TRIM函数的语法做详尽的阐述说明,希望可以让你对Oracle TRIM函数有更深的认识。

  如果提到Oracle TRIM函数,最简单的功能就是使用它来去除字符串的行首和行尾的空格,这个功能也是大家使用频率最高的一种。
  然而Oracle TRIM函数其实是具有删除“任意指定”字符的功能,不可谓不牛。我们来一次体验之旅。

1 先看一下Oracle TRIM函数的完整语法描述
TRIM([ { { LEADING | TRAILING | BOTH }
[ trim_character ]
| trim_character
}
FROM
]
trim_source
)

  单从这个语法定义上我们就可以看出,小小的Oracle TRIM函数蕴含了更多可定制的功能。下面一一展示,以供参考。

2 最简单的用法开始

  不使用任何参数:

gloria@www.dweye.net> select trim (' DWEYE ') "TRIM e.g." from dual;

TRIM e.g
--------
DWEYE

  这也是最常见的一种使用方法,都使用默认的参数,默认情况下TRIM会同时删除字符串前后出现的空格。

3 其实第一种常用的方法等同于下面带有“BOTH”参数的写法
gloria@www.dweye.net> select trim (both from ' DWEYE ') "TRIM e.g." from dual;

TRIM e.g
--------
DWEYE

  “BOTH”参数表示同时去除字符串前后所指定的内容(默认情况下删除空格)。

4 既然试用了BOTH参数,我们再看一下“TRAILING”和“LEADING”参数效果
gloria@www.dweye.net> select trim (trailing from ' DWEYE ') "TRIM e.g." from dual;

TRIM e.g.
------------
DWEYE

gloria@www.dweye.net> select trim (leading from ' DWEYE ') "TRIM e.g." from dual;

TRIM e.g.
------------
DWEYE

  可见,使用“TRAILING”参数可以完成字符串尾部空格的删除功能;而“LEADING”参数正好相反,完成字符串头部空格的删除功能。
  也就是说,使用“TRAILING”和“LEADING”参数可以指定空格的删除位置。

5 “trim_character”参数粉墨登场

  这个参数改变了“删除空格”的默认行为。如果想要删除字符串’xxxxDWEYExxxx’前后出现的“x”,“trim_character”参数就派上用场了。

gloria@www.dweye.net> select trim ('x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual;

TRIM e.g
--------
DWEYE

  配合“BOTH”、“TRAILING”和“LEADING”三个参数使用效果如下,与之前演示类似。看结果,不赘述。

gloria@www.dweye.net> select trim (both 'x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual;

TRIM e.g
--------
DWEYE

gloria@www.dweye.net> select trim (trailing 'x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual;

TRIM e.g.
------------
xxxxDWEYE

gloria@www.dweye.net> select trim (leading 'x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual;

TRIM e.g.
------------
DWEYExxxx
6 需要注意的地方

  这里的“trim_character”参数只允许包含一个字符,不支持多字符。使用多字符的报错信息如下:

gloria@www.dweye.net> select trim (leading 'xy' from 'xyxxDWEYExyyx') "TRIM e.g." from dual;
select trim (leading 'xy' from 'xyxxDWEYExyyx') "TRIM e.g." from dual
*
ERROR at line 1:
ORA-30001: trim set should have only one character

  既然TRIM不能满足我们删除只剩“DWEYE”字符串的要求,有么有其他手段呢?of course有。我们使用RTRIM和LTRIM“连环拳”完成这个任务。
  1)使用RTRIM

gloria@www.dweye.net> select rtrim('xyxxDWEYExyyx','xy') "e.g." from dual;

e.g.
------------
xyxxDWEYE

  2)使用LTRIM

gloria@www.dweye.net> select ltrim('xyxxDWEYExyyx','xy') "e.g." from dual;

e.g.
------------
DWEYExyyx

  3)联合使用RTRIM和LTRIM函数达到我们的目的

gloria@www.dweye.net> select ltrim(rtrim('xyxxDWEYExyyx','xy'),'xy') "e.g." from dual;

e.g.
--------
DWEYE

  使用RTRIM和LTRIM函数时的注意事项:“xy”不表示整个“xy”字符串进行匹配,而是发现任意的字符“x”或字符“y”均做删除操作。

7 小结

  在感受Oracle函数带来便利的同时,建议对每一个常用函数都追本溯源地探究一下,也许在尝试之后您会发现:哦,原来大家经常用到这些方法只是其真实功能的沧海一粟。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值