-
LTRIM(
左截断
)
RTRIM
(右截断)函数
LTRIM (string
[,’Alpha’])
Left
TRIM (
左截断
)
删去左边出现的
任何
Alpha
字符。
RTRIM (string
[,’
Alpha
’])
Right
TRIM (
右截断
)
删去右边出现的
任何
Alpha
字符。
例
1
:
select LTRIM('ABCDDCBA','D')
--BCDCBA
图
1
select RTRIM('ABCDCBA','A')
--ABCDCB
图
2
select TRIM('D' from
'ABCDDCBA')
图
3
p>
顾名思义,
TRIM
即表示全部截断,不分
左右(可以在参数里选择):
TR
IM
可以使你对给定的字符串进行裁剪(前面,后
面或前后)。
如果指定
LEADING, Oracle
从
trim_char
中裁剪掉
前面的字符;
如果指定
TRAILING, Oracle
从
trim_char
中裁剪掉
尾面的字符;
如果指定
BOTH
,
Ora
cle
从
trim_char
中裁剪
掉所有
指定字符(注意,此处有限制,只能是单个字符,而
且无
法取出位于字符串正中间的字符,这个在后面说
明
)
如果指定两个都指定或一个都没有给出,
Ora
cle
从
trim_char
中裁剪掉前面及尾面的字符;
如果不指定
trim_character,
缺省为空格符;
如果只指定
trim_source, Oracle
Oracle
从
trim_char
中裁剪掉前面及尾面的字符。
例:
select
TRIM('D' from 'ABCDDCBA')
dual;
--BCDDCB
图
4
于是乎我就在想它如果遇到字符串长度单双会怎么裁剪呢?然
后就发现
bug
了!
如下:
select
TRIM('D' from 'ABCDCBA')
---
字符串长度为单数时无法删除
正中间的字符
ABCDCBA
select
LTRIM('ABCDCBA','D')
--ABCDCBA
select RTRIM('ABCDCBA','D')
--ABCDCBA
select TRIM('D' from
'ABCDDCBA')
---
字符串长度为单数时无法
删除正中间的字符
ABCDDCBA
select
LTRIM('ABCDDCBA','D')
select
RTRIM('ABCDDCBA','D')
暴漏出的缺
陷是:
1
、这三个
TRIM
函数都无法对位于字符串正中间的字符进行处理;
2
、
TRIM
函数仅支持去除单个字符,而
LTRIM
、
RTRIM
则可支持
p>
多个字符。
图
5
以上为个人原创,如需详细了解可以参考如下文档:
ora
cle
中
trim
,
< br>ltrim
,
rtrim
函数用
法
oracle
中
< br>trim
,
ltrim
,
rtrim
函数用法
该函数共有两种作用:
第一种,即大家都比较熟悉的去除空格。
例子:
--TRIM
去除指定字符的前后空格
SQL> SELECT TRIM(' dd df ') FROM
dual;
TRIM('DDDF')
------------
dd
df
--LTRIM
去除指定字符的前面空格
SQL> SELECT
LTRIM(' dd df ') FROM dual;
LTRIM('DDDF')
-------------
dd
df
--RTRIM
去除指定字符后面后空格
SQL> SELECT RTRIM(' dd df ') FROM
dual;
RTRIM('DDDF')
-------------
dd
df
第二种,去除指定的字符。<
/p>
trim
只能去除单个字符
,而
ltrim
和
rtrim
可以去除多个字符。
trim
去除字符的写法:
--
表示字符串
string2
去除前面
|
后面
|
前后面(
leading|trailing|both
< br>)的字符
string1
,默认
去除方式为
both
SELECT
TRIM(leading|trailing|both string1 FROM string2)
FROM dual;
例子:
SQL> SELECT trim(leading 'd' from
'dfssa') FROM dual;
TRIM(LEADING'D'FROM'DFSSA')
---------------------------
fssa
SQL> SELECT trim(both '1' from
'123sfd111') FROM dual;
TRIM(BOTH'1'FROM'123SFD111')
----------------------------
23sfd
SQL> SELECT trim(trailing '2' from
'213dsq12') FROM dual;
TRIM(
TRAILING'2'FROM'213DSQ12'
--
----------------------------
213dsq1
< br>注:
trim
去除字符只能是单个字符,如下,要去除的
字符若为字符集则报错
SQL> SELECT
trim(trailing '12' from '123dsq12') FROM
dual;
SELECT trim(trailing
'12' from '123dsq12') FROM dual
ORA-30001:
截取集仅能有一个字符
ltrim
和
rtrim
去除字符的写法:
--
表示字符串<
/p>
string1
去除前面与
string
2
字符集匹配的,若无匹配则结束返回
SELECT ltrim(string1,string2) FROM
dual;
--rtrim
与
ltr
im
类似,只是去除的是右边算起匹配的字符
SELECT rtrim(string1,string2) FROM
dual;
例子:
--
如下,由于从右边算起,第一个字母是
b
没有与
'main'
匹配的字符,因此返回结果
仍是
'aaaaminb'
SQL>
SELECT rtrim('aaaaminb','main') FROM
dual;
RTRIM('AAAAMINB','MAIN')
------------------------
aaaaminb
--
如下返回结果为空
SQL> SELECT rtrim('aaaaminb','mainb')
FROM dual;
RTRIM('AAAAMINB','MAINB')
-
-
-
-
-
-
-
-
-
上一篇:最新电气配管施工方案
下一篇:2019年整理浙江建设工程版计价依据综合解释资料