2012-11-19 53 views
1

我有一個簡單的字符串操作要在Oracle中完成,但是找不到方法。 假設delimter爲 ' - ' 如果輸入STR = 'ABC-123-XYZ-456' 和線= 1 然後輸出應該是我得到此使用oracle字符串操作

select substr('abc-123-xyz-456',1,instr('abc-123-xyz-456','-')-1) from dual; 

'ABC' 如果行= 2,然後我需要輸出作爲 ABC-123

如果線= 3,然後我需要輸出作爲 ABC-123-XYZ等

我不能夠以有效的方式算出這個。 在此先感謝

回答

3

我發現了一個很酷的解決方案:

select substr('abc-123-xyz-456',1,instr('abc-123-xyz-456','-',1,n)-1) 
    from dual; 

其中n是行數。 讓我知道是否有更好的方法,