用户名:   自动登录 找回密码
密   码:    * 注册




发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
 文章标题 : substr+instr根据特殊字符截取字符串
帖子发表于 : 2012-07-03 20:56 
离线
头像

注册: 2011-05-01 9:15
帖子: 120
instr(str_1,str_2) 获取str_1中第一次出现str_2的位置,结果为数字
substr(str_1,num_1,num_2) 截取str_1字符串从num_1到num_2的字符串,因此即可用instr代替里面的num_1或者num_2,来达到根据特殊字符标识来截取字符串。


代码:
SQL> select seqno from visit_new where rownum<2;

SEQNO
--------------------------------------------------------------------------------

241--20120608---12----02696


SQL> select instr('241--20120608---12----02696','--') from dual;

INSTR('241--20120608---12----02696','--')
-----------------------------------------
                                        4

SQL> select instr('241--20120608---12----02696','---') from dual;

INSTR('241--20120608---12----02696','---')
------------------------------------------
                                        14

SQL> select instr('241--20120608---12----02696','----') from dual;

INSTR('241--20120608---12----02696','----')
-------------------------------------------
                                         19

SQL> select substr('241--20120608---12----02696',0,instr('241--20120608---12----
02696','--')) from dual;

SUBS
----
241-

SQL> select substr('241--20120608---12----02696',0,instr('241--20120608---12----
02696','--')-1) from dual;

SUB
---
241

SQL> select substr('241--20120608---12----02696',instr('241--20120608---12----02
696','--')+2,8) from dual;

SUBSTR('
--------
20120608

SQL> select to_date(substr('241--20120608---12----02696',instr('241--20120608---
12----02696','--')+2,8),'yyyy-mm-dd') from dual;

TO_DATE(SUBSTR
--------------
08-6月 -12

SQL> select to_date(substr('241--20120608---12----02696',instr('241--20120608---
12----02696','--')+2,8),'yyyy-mm-dd')-1 from dual;

TO_DATE(SUBSTR
--------------
07-6月 -12


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 


在线用户

注册用户: 没有注册用户


查找:
前往 :  
cron
Powered by OraSql © 2011, 2012, oracle_awen