oracle中的trim函数使用介绍
OracleTRIM函数是很常见的函数,下面对OracleTRIM函数的语法作了详尽的阐述说明,希望可以让您对OracleTRIM函数有更深的认识。
如果提到OracleTRIM函数,最简单的功能就是使用它来去除字符串的行首和行尾的空格,这个功能也是大家使用频率最高的一种。
然而OracleTRIM函数其实是具有删除“任意指定”字符的功能,不可谓不牛。我们来一次体验之旅。
1.先看一下OracleTRIM函数的完整语法描述
TRIM([{{LEADING|TRAILING|BOTH}
[trim_character]
|trim_character
}
FROM
]
trim_source
)
以上语法引自于Oracle10gR2官方文档:http://download.oracle.com/docs/...0/img_text/trim.htm
单从这个语法定义上我们就可以看出,小小的OracleTRIM函数蕴含了更多可定制的功能。一一展示,供参考。
2.最简单的用法开始
不使用任何参数:
gloria@www.dweye.net>selecttrim('DWEYE')"TRIMe.g."fromdual;
TRIMe.g
--------
DWEYE
这也是最常见的一种使用方法,都使用默认的参数,默认情况下TRIM会同时删除字符串前后出现的空格。
3.其实第一种常用的方法等同于下面带有“BOTH”参数的写法
gloria@www.dweye.net>selecttrim(bothfrom'DWEYE')"TRIMe.g."fromdual;
TRIMe.g
--------
DWEYE
“BOTH”参数表示同时去除字符串前后所指定的内容(默认情况下删除空格)。
4.既然试用了BOTH参数,我们再看一下“TRAILING”和“LEADING”参数效果
gloria@www.dweye.net>selecttrim(trailingfrom'DWEYE')"TRIMe.g."fromdual;
TRIMe.g.
------------
DWEYE
gloria@www.dweye.net>selecttrim(leadingfrom'DWEYE')"TRIMe.g."fromdual;
TRIMe.g.
------------
DWEYE
可见,使用“TRAILING”参数可以完成字符串尾部空格的删除功能;而“LEADING”参数正好相反,完成字符串头部空格的删除功能。
也就是说,使用“TRAILING”和“LEADING”参数可以指定空格的删除位置。
5.“trim_character”参数粉墨登场
这个参数改变了“删除空格”的默认行为。
如果想要删除字符串'xxxxDWEYExxxx'前后出现的“x”,“trim_character”参数就派上用场了。
gloria@www.dweye.net>selecttrim('x'from'xxxxDWEYExxxx')"TRIMe.g."fromdual;
TRIMe.g
--------
DWEYE
配合“BOTH”、“TRAILING”和“LEADING”三个参数使用效果如下,与之前演示类似。看结果,不赘述。
gloria@www.dweye.net>selecttrim(both'x'from'xxxxDWEYExxxx')"TRIMe.g."fromdual;
TRIMe.g
--------
DWEYE
gloria@www.dweye.net>selecttrim(trailing'x'from'xxxxDWEYExxxx')"TRIMe.g."fromdual;
TRIMe.g.
------------
xxxxDWEYE
gloria@www.dweye.net>selecttrim(leading'x'from'xxxxDWEYExxxx')"TRIMe.g."fromdual;
TRIMe.g.
------------
DWEYExxxx
6.需要注意的地方
这里的“trim_character”参数只允许包含一个字符,不支持多字符。
报错信息如下:
gloria@www.dweye.net>selecttrim(leading'xy'from'xyxxDWEYExyyx')"TRIMe.g."fromdual;
selecttrim(leading'xy'from'xyxxDWEYExyyx')"TRIMe.g."fromdual
*
ERRORatline1:
ORA-30001:trimsetshouldhaveonlyonecharacter
既然TRIM不能满足我们删除只剩“DWEYE”字符串的要求,有么有其他手段呢?ofcourse有。我们使用RTRIM和LTRIM“连环拳”完成这个任务。
1)使用RTRIM
gloria@www.dweye.net>selectrtrim('xyxxDWEYExyyx','xy')"e.g."fromdual;
e.g.
------------
xyxxDWEYE
2)使用LTRIM
gloria@www.dweye.net>selectltrim('xyxxDWEYExyyx','xy')"e.g."fromdual;
e.g.
------------
DWEYExyyx
3)联合使用RTRIM和LTRIM函数达到我们的目的
gloria@www.dweye.net>selectltrim(rtrim('xyxxDWEYExyyx','xy'),'xy')"e.g."fromdual;
e.g.
--------
DWEYE
使用RTRIM和LTRIM函数时的注意事项:“xy”不表示整个“xy”字符串进行匹配,而是发现任意的字符“x”或字符“y”均做删除操作。
7.小结
在感受Oracle函数带来便利的同时,建议对每一个常用函数都追本溯源地探究一下,也许在尝试之后您会发现:哦,原来大家经常用到这些方法只是其真实功能的沧海一粟。
以下是其它网友的补充:
如trim('字符1'from'字符串2'),字符1只能是单个字符。
1.trim()删除字符串两边的空格。
2.ltrim()删除字符串左边的空格。
3.rtrim()删除字符串右边的空格。
4.trim('字符1'from'字符串2')分别从字符2串的两边开始,删除指定的字符1。
5.trim([leading|trailing|both]trim_charfromstring)从字符串String中删除指定的字符trim_char。
leading:从字符串的头开始删除。
trailing:从字符串的尾部开始删除。
borth:从字符串的两边删除。
6.tim()只能删除半角空格。
Forexample:
trim('tech')wouldreturn'tech';
trim(''from'tech')wouldreturn'tech';
trim(leading'0'from'000123')wouldreturn'123';
trim(trailing'1'from'Tech1')wouldreturn'Tech';
trim(both'1'from'123Tech111')wouldreturn'23Tech';
oracle中的trim函数
Oracle中的trim函数是用来删除给定字符串或者给定数字中的头部或者尾部的给定字符。
trim函数具有如下的形式
trim([leading/trailing/both][匹配字符串或数值][from][需要被处理的字符串或数值])
这里如果指明了leading表示从删除头部匹配的字符串,如果指明了trailing表示从删除尾部匹配的字符串,如果指明了both,或者不指明任何位置,则两端都将被删除
如果不指明任何匹配字符串或数值则认为是空格,即删除前面或者后面的空格。
trim函数返回的类型是varchar2
下面是一些例子:
截去了数字7500的后面的两个0
SQL>selecttrim(0from7500)fromdual;
TRIM
—-
75
下面的例子截去了'中秋八月中'前后的两个'中'字
SQL>selecttrim('中‘from‘中秋八月中‘)as诗fromdual;
诗
——————
秋八月
下面的例子截去了'半夜二更半'前面的一个'半'字
SQL>selecttrim(leading‘半‘from‘半夜二更半‘)as诗fromdual;
诗
————————
夜二更半