Welcome to oracle_awen's archive blog
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
添加评论

昵称 *

E-mail (防止垃圾信息,此栏留空)