2015-05-26 23 views
-1

我必须使用substr功能和装饰这个数据:SUBSTR在Oracle

CAS/782813439-VN/0 

我的输出应该782813439-VN

请帮帮忙!

+3

我不明白与SUBSTR你的问题是什么。你知道函数substr,所以你也知道它的参数,我猜测。首先是从哪里开始(你的案例中的第五个角色),第二个角色是多少角色(这里是12个字符)。那么你为什么要问? –

+0

你想实现的算法是什么?你想要5到17个字符吗?你想要'/'两个字符之间的所有内容吗?还有别的吗? –

+0

朋友....为什么你再次重复同样的问题ñ再次..同样的问题你问我猜2-3天后:http://stackoverflow.com/questions/30301220/sql-substr-function/30302304# 30302304 –

回答

1
select substr('CAS/782813439-VN/0', 5, 12) from dual 
1

你可以使用SUBSTRINSTR来概括它。这样,您可以提取'/'第一个第二次出现之间的子串。

SELECT SUBSTR(str, instr(str, '/', 1, 1) +1, 
        instr(str, '/', 1, 2) - 
        instr(str, '/', 1, 1)-1) new_str 
FROM table_name; 

例如,

SQL> WITH DATA AS 
    2 (SELECT 'CAS/782813439-VN/0' str FROM dual 
    3 ) 
    4 SELECT SUBSTR(str, instr(str, '/', 1, 1) +1, 
    5      instr(str, '/', 1, 2) - 
    6      instr(str, '/', 1, 1)-1) new_str 
    7 FROM DATA 
    8/

NEW_STR 
------------ 
782813439-VN 

SQL>