- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle TRIM、LTRIM、RTRIM函数功能与缺陷详解
LTRIM(左截断) RTRIM(右截断) 函数
LTRIM (string?[,’Alpha’])
Left TRIM (左截断)删去左边出现的任何Alpha字符。
RTRIM (string?[,’Alpha’])
Right TRIM (右截断)删去右边出现的任何Alpha字符。
例1:
select LTRIM(ABCDDCBA,D) ex. from dual; ? --BCDCBA
图1
select RTRIM(ABCDCBA,A) Sample from dual; ?--ABCDCB?
图2
select TRIM(D from ABCDDCBA) Sample from dual; ? ?
图3
顾名思义,TRIM即表示全部截断,不分左右(可以在参数里选择):
TRIM可以使你对给定的字符串进行裁剪(前面,后面或前后)。
如果指定 LEADING, Oracle 从trim_char 中裁剪掉前面的字符;
如果指定TRAILING, Oracle 从trim_char 中裁剪掉尾面的字符;
如果指定BOTH,Oracle 从trim_char中裁剪掉所有指定字符(注意,此处有限制,只能是单个字符,而且无法取出位于字符串正中间的字符,这个在后面说明)
如果指定两个都指定或一个都没有给出,Oracle从trim_char 中裁剪掉前面及尾面的字符;
如果不指定 trim_character, 缺省为空格符;
如果只指定trim_source, Oracle Oracle从trim_char 中裁剪掉前面及尾面的字符。
例:
select TRIM(D from ABCDDCBA) Sample from dual; ? ?--BCDDCB
图4
于是乎我就在想它如果遇到字符串长度单双会怎么裁剪呢?然后就发现bug了!
如下:
select TRIM(D from ABCDCBA) Sample from dual; ?--- 字符串长度为单数时无法删除正中间的字符 ?ABCDCBA
select LTRIM(ABCDCBA,D) Sample from dual; ?--ABCDCBA
select RTRIM(ABCDCBA,D) Sample from dual; ?--ABCDCBA
select TRIM(D from ABCDDCBA) Sample from dual; ? ?--- 字符串长度为单数时无法删除正中间的字符 ?ABCDDCBA
select LTRIM(ABCDDCBA,D) Sample from dual; --ABCDDCBA
select RTRIM(ABCDDCBA,D) Sample from dual; --ABCDDCBA
暴漏出的缺陷是:1、这三个TRIM函数都无法对位于字符串正中间的字符进行处理;
? ? ? ? ? ? ? ? ? ? ? ? ? ? 2、TRIM函数仅支持去除单个字符,而LTRIM、RTRIM则可支持多个字符。
图5
以上为个人原创,如需详细了解可以参考如下文档:
HYPERLINK /lanzi/archive/2013/01/14/2859666.html oracle中trim,ltrim,rtrim函数用法
oracle中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第二种,去除指定的字符。trim只能去除单个字符,而ltrim和rtrim可以去除多个字符。
trim去除字符的写法:--表示字符串string2去除前面|后面|前后面(leading|trailing|both)的字符string1,默认去除方式为bothSELECT TRIM(leading|trailing|both string1 FROM string2) FROM dual;例子:SQL SELECT trim(leading d from dfssa) FROM dual;?TRIM(LEADINGDFROMDFSSA)--------------
文档评论(0)