截取某個字符串中特定的字符串

INSTR(C1,C2,I,J)
在一個字符串中搜索指定的字符,返回發現指定的字符的位置;
C1    被搜索的字符串
C2    希望搜索的字符串
I     搜索的開始位置,默認為1
J     出現的位置,默認為1
SELECT substr('6477-38892-4706-331-58781',
              instr('6477-38892-4706-331-58781','-',1,1)+1,
              decode(instr('6477-38892-4706-331-58781','-',1,2),
                     0,
                     length('6477-38892-4706-331-58781')+1,
                     instr('6477-38892-4706-331-58781','-',1,2))
              -instr('6477-38892-4706-331-58781','-',1,1)-1) 
         --INTO l_item_id
         FROM DUAL
 
SELECT substr('15619-34668-36258-33182-58781',
              instr('15619-34668-36258-33182-58781','-',1,1)+1,
              instr('15619-34668-36258-33182-58781','-',1,2)-instr('15619-34668-36258-33182-58781','-',1,1)-1) 
         --INTO l_item_id
         FROM DUAL


SELECT instr('6477-38892-4706-331-58781','-',1,5) FROM dual --0


--倒着截取
SELECT substr('6477-38892-4706-331-58781',
                      1,
                      instr('6477-38892-4706-331-58781','-',-1,1)-1) FROM dual --6477-38892-4706-331


--正着截取
SELECT substr('6477-3892-4706-331-581',
                      instr('6477-3892-4706-331-581','-',1,1)+1,
                      instr('6477-3892-4706-331-581','-',-1,1)+1) FROM dual --3892-4706-331-581
 
SELECT substr('2.1.01.2711',
              instr('2.1.01.2711','.',1,2)+1,
              instr('2.1.01.2711','.',1,2)-2) FROM dual   --01


SELECT substr('2.1.01.2711',
              instr('2.1.01.2711','.',-1,1)+1,
              length('2.1.01.2711')) FROM dual --2711
              
SELECT instr('2.1.01.2711','.',-1,1) FROM dual


SELECT SUBSTR('0000001000000200000020000001',
              1,
              LENGTH('0000001000000200000020000001')-7) FROM DUAL   --000000100000020000002               
                     
發佈了66 篇原創文章 · 獲贊 0 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章