ITPub博客

首页 > 数据库 > Oracle > 裁剪 TRIM、LTRIM、RTRIM

裁剪 TRIM、LTRIM、RTRIM

原创 Oracle 作者:Eurca 时间:2014-05-19 16:07:48 0 删除 编辑
用法如下:
declare
  a varchar2(30) :='this is apple!!!!!!';
  b varchar2(30):='ssthis...is apple this';
  begin
    dbms_output.put_line(rtrim(a,'le!')); //右-->左截取
    dbms_output.put_line(ltrim(b,'th')); //左-->右截取
    dbms_output.put_line(trim(leading 's' from b));//左截取(头)
    dbms_output.put_line(trim(trailing 's' from b));//右截取(尾)
    dbms_output.put_line(trim( 's' from b));//左右截取(头尾)=trim(both 's' from b)[不写默认就是both]
  end;
说明:
    
ltrim表示从左往右在字符串中依次匹配't','h'(注意这里是依次匹配,我有意拆分字符串'th''),当匹配的字符不是't'或'h'时,匹配结束并返回结果。
此例返回:ssthis...is apple this (首字符s跟t不匹配,不截取,首字符s跟h也不匹配,也不截取,匹配完毕返回结果)。
如b:='hthis...is apple this'----->结果:is...is apple this(第一步:h跟【t,h】中的【h】匹配,截取,第二步:t跟【t,h】中的【t】匹配,截取,第三步:h跟【t,h】中的【h】匹配,截取,第四步:.跟【t,h】任意一个都不匹配,截取结束,返回结果。)
    rtrim表示从右往左在字符串中依次匹配'le!',其匹配方式跟ltrim相同,如上结果:this is app。
要点:依次匹配


trim
:(跟ltrim、rtrim的表达形式有差异)
  dbms_output.put_line(trim(leading 's' from b));//左截取(头)
    dbms_output.put_line(trim(trailing 's' from b));//右截取(尾)
    dbms_output.put_line(trim( 's' from b));//左右截取(头尾)=trim(both 's' from b)[不写默认就是both]
要点:trim中截取匹配的只能是单个字符,不能是字符串,否则会报错:ORA-30001: trim set should have only one character

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29665458/viewspace-1164372/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-05-19

  • 博文量
    22
  • 访问量
    53231