2015-05-26 45 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>