用Oracle的TRIM函数去除字符串首尾指定字符

摘要:
去掉首尾空格SELECTTRIM,ltrim,rtrimFROMdual;去掉首尾的其他字符SELECT/*TRIM,*/ltrim,rtrimFROMdual;注意:无法使用TRIM的格式但是TRIM()却有它自己的格式SELECTTRIM,TRIM,TRIM,TRIMFROMdual;去掉首尾多个字符对于去除首尾多个字符的时候,需要特别注意的是,Oracle数据库会从字符串中扫描,移除掉去除集合中出现的每一个字符,直到遇到第一个不在去除集合中的字符为止,而不是去去掉去除集合中的字符串。SELECTLTRIM,RTRIMFROMdual;注意:TRIM是不行的,此函数的截取集仅能包含一个字符。

去掉首尾空格

SELECT TRIM('abc '), ltrim('abc '), rtrim('abc ') FROM dual;

用Oracle的TRIM函数去除字符串首尾指定字符第1张

去掉首尾的其他字符

SELECT /*TRIM(';a;b;c;'),*/ ltrim(';a;b;c;',';'), rtrim(';a;b;c;',';')  FROM dual;

用Oracle的TRIM函数去除字符串首尾指定字符第2张

注意:无法使用TRIM(‘;a;b;c;’, ‘;’)的格式
但是TRIM()却有它自己的格式
SELECT TRIM(';' FROM ';a;b;c;'),
       TRIM(leading ';' FROM ';a;b;c;'),
       TRIM(trailing ';' FROM ';a;b;c;'),
       TRIM(both ';' FROM ';a;b;c;')
  FROM dual;

去掉首尾多个字符

对于去除首尾多个字符的时候,需要特别注意的是,Oracle数据库会从字符串中扫描,移除掉去除集合中出现的每一个字符,直到遇到第一个不在去除集合中的字符为止,而不是去去掉去除集合中的字符串。

SELECT LTRIM('thetomsbthhe', 'the'),RTRIM('thetomsbthhe', 'the') FROM dual;

用Oracle的TRIM函数去除字符串首尾指定字符第3张

注意:TRIM(leading 'the' FROM 'thetomsbthhe')是不行的,此函数的截取集仅能包含一个字符。

select * from
(
--租用--
select rownum as 编号,gxrxm as 承租人 ,(case trim(gxrxb ) when '1' then '' when '2' then '' else '不详' end ) as性别,
       rtrim( mobilephone ||','|| LXDH, ',') as 联系方式 , (select (select gxmc from gxxx where t2. gx= gxdm and rownum= 1) fromwrxxb t2
       where t1.djh=djh and rownum=1 and rq=(select min( rq) from wrxxb where t1. djh= djh)) 关系 ,rq as 办理日期 ,'租用' as业务类型
       --,mwje as 墓价,zmj 成交价,(mwje-zmj) as 优惠金额 ,(SELECT mj FROM mwdmxx WHERE djh=T1.djh) as 面积
       from ywdjb t1 where to_char(rq ,'yyyy-mm-dd')>= '2015-07-01' and to_char(rq, 'yyyy-mm-dd')<='2015-07-31'   and zxflag= '0'
union all
--续租--
select rownum as 编号,t2.gxrxm  as 承租人 ,(case trim(t2 .gxrxb ) when '1' then '' when '2' then '' else '不详' end ) as 性别,rtrim( t2.mobilephone|| ','||t2.LXDH,',' ) as联系方式 ,
       (select (select gxmc from gxxx where t3 .gx =gxdm and rownum=1) fromwrxxb t3
       where t1.djh=djh and rownum=1 and rq=(select min( rq) from wrxxb where t1. djh= djh)) 关系 ,t1.rq as 办理日期 ,t1 .ywmc as业务类型
       from qtywb t1 ,ywdjb t2 where t1 .djh =t2 .djh and to_char(t1. rq, 'yyyy-mm-dd')>='2015-07-01' and
       to_char(t1.rq,'yyyy-mm-dd' )<='2015-07-31'  and t1 .zxflag ='0' and  t1.ywmc= '续租'
union all
--合葬--
select rownum as 编号,t2.gxrxm  as 承租人 ,(case trim(t2 .gxrxb ) when '1' then '' when '2' then '' else '不详' end ) as 性别,rtrim( t2.mobilephone|| ','||t2.LXDH,',' ) as联系方式 ,
       (select (select gxmc from gxxx where t3 .gx =gxdm and rownum=1) fromwrxxb t3
       where t1.djh=djh and rownum=1 and rq=(select min( rq) from wrxxb where t1. djh= djh)) 关系 ,t1.rq  as 办理日期 ,t1 .ywmc as业务类型
       from qtywb t1 ,ywdjb t2 where t1 .djh =t2 .djh and to_char(t1. rq, 'yyyy-mm-dd')>='2015-07-01' and
       to_char(t1.rq,'yyyy-mm-dd' )<='2015-07-31'  and t1 .zxflag ='0' and  t1.ywmc= '合葬'
union all
--老墓改造--
select rownum as 编号,t2.gxrxm  as 承租人 ,(case trim(t2 .gxrxb ) when '1' then '' when '2' then '' else '不详' end ) as 性别,rtrim( t2.mobilephone|| ','||t2.LXDH,',' ) as联系方式 ,
       (select (select gxmc from gxxx where t3 .gx =gxdm and rownum=1) fromwrxxb t3
       where t1.djh=djh and rownum=1 and rq=(select min( rq) from wrxxb where t1. djh= djh)) 关系 ,t1.rq as 办理日期 ,t1 .ywmc as业务类型
       from qtywb t1 ,ywdjb t2 where t1 .djh =t2 .djh and to_char(t1 .rq ,'yyyy-mm-dd')>= '2015-07-01' and
       to_char(t1.rq,'yyyy-mm-dd' )<='2015-07-31'  and t1 .zxflag ='0' and t1.ywmc= '老墓改造'
)
order by 办理日期

用Oracle的TRIM函数去除字符串首尾指定字符第4张

免责声明:文章转载自《用Oracle的TRIM函数去除字符串首尾指定字符》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#操作MySQL时,出现的中文乱码的解决方案Maven打jar包把配置文件放在META-INF目录下下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Oracle SQL优化

1、SQL语句尽量用大写的:  因为oracle总是先解析SQL语句,把小写的字母转换成大写的再执行。 2、使用表的别名:   当在SQL语句中连接多个表时, 尽量使用表的别名并把别名前缀于每个列上。这样一来,就可以减少解析的时间并减少那些由列歧义引起的语法错误。 3.表名的顺序选择要高效: ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名...

win7下安装 oracle 10g:permission denied

  昨天换了win7系统,在装数据库oracle 10g,开始安装的时候蛮好的,但是在创建数据库过程中始终出现这个错误::ora-12546 tns permission denied。退出来在database configuration assistant在配置数据库也是这个错误。这个问题一直困扰着我,不过我安装多少遍都是这个错误。没办法在网上查找资料...

Oracle常用监控sql语句

    1.监控事例的等待:  select event,sum(decode(wait_time,0,0,1)) prev, sum(decode(wait_time,0,1,0)) curr,count(*) from v$session_wait  group by event order by 4;     2.回滚段的争用情况: select...

Mysql,SqlServer,Oracle主键自动增长的设置

在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如: CREATE TABLE google(id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,NAME VARCHAR(15),age INT,email VARCHAR(50),gender VARCHAR(10)) i...

[转]Oracle存储过程给变量赋值的方法

原文地址:http://blog.csdn.net/drbing/article/details/51821262 截止到目前我发现有三种方法可以在存储过程中给变量进行赋值:1、直接法     :=       如:v_flag := 0;2、select into   如:假设变量名为v_flag,select count(*) into v_flag...

Oracle中的日期和字符串互相转换

转载出处:http://blog.sina.com.cn/s/blog_44a005380100k6rv.html TO_DATE格式(以时间:2007-11-02   13:45:25为例)            Year:              yy two digits 两位年                显示值:07         yyy...