Home  >  Article  >  Database  >  Oracle TRIM函数探究

Oracle TRIM函数探究

WBOY
WBOYOriginal
2016-06-07 17:20:521190browse

探究TRIM函数Oracle TRIM函数,最简单的功能就是使用它来去除字符串的行首和行尾的空格,这个功能也是大家使用频率最高的一种。然

探究TRIM函数
Oracle TRIM函数,最简单的功能就是使用它来去除字符串的行首和行尾的空格,这个功能也是大家使用频率最高的一种。
然而Oracle TRIM函数其实是具有删除“任意指定”字符的功能。

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

2.不适用任何参数
SQL> select trim('  helle,redcat  ') "greeting"
  2  from dual;
greeting
------------
helle,redcat
这是最常见的一种使用方法,都使用默认的参数,默认情况下TRIM会同时删除字符串前后出现的空格。
等同于下面带有“BOTH”参数的写法
SQL> select trim(both from '  hello,redcat  ') "greeting"
  2  from dual
  3  ;
greeting
------------
hello,redcat
“BOTH”参数表示同时去除字符串前后所指定的内容(默认情况下删除空格)。
“TRAILING”参数可以完成字符串尾部空格的删除功能。
“LEADING”参数正好相反,完成字符串头部空格的删除功能。

3.“trim_character” 参数改变了“删除空格”的默认行为。
trim删除两边指定的字符
SQL> select trim('s' from 'sssshello,redcatsss') "greeting"
  2  from dual;
greeting
------------
hello,redcat
同上
SQL> select trim(both 's' from 'ssshello,redcatsss') "greeting"
  2  from dual;
greeting
------------
hello,redcat
leading删除字符串头部指定字符
SQL> select trim(leading 's' from 'ssshello,redcatsss') "greeting"
  2  from dual;
greeting
---------------
hello,redcatsss
trailing删除字符串尾部指定字符
SQL> select trim(trailing 's' from 'ssshello,redcatsss') "greeting"
  2  from dual;
greeting
---------------
ssshello,redcat
 
以上只能删除指定单个字符,错误信息ORA-30001: trim set should have only one character若要删除多个,则需要用以下方法。

4.使用RTRIM和LTRIM“连环拳”删除指定多字符
ltrim删除字符串左边指定的字符
SQL> select ltrim('sasaashello,redcatsaassa','sa') "greeting"
  2  from dual;
greeting
------------------
hello,redcatsaassa
rtrim删除字符串右边指定的字符
SQL> select rtrim('sasaashello,redcatsaassa','sa') "greeting"
  2  from dual;
greeting
------------------
sasaashello,redcat
ltrim 和rtrim联合使用达到我们的目的
SQL> select ltrim(rtrim('sasaashello,redcatsaassa','sa'),'sa') "greeting"
  2  from dual;
greeting
------------
hello,redcat
使用RTRIM和LTRIM函数时的注意事项:“xy”不表示整个“xy”字符串进行匹配,而是发现任意的字符“x”或字符“y”均做删除操作。

5. 感悟
一个小小的函数能找出这么多功能,嘿嘿,小小发现。

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn