在Oracle中,可以使用SUBSTR函數(shù)和INSTR函數(shù)來實(shí)現(xiàn)類似于SUBSTRING_INDEX函數(shù)的功能。以下是如何使用這兩個(gè)函數(shù)來實(shí)現(xiàn)類似的功能:
例如,我們有一個(gè)字符串"apple,orange,banana,grape",我們想要獲取字符串中第n個(gè)逗號(hào)分割的子字符串。
SELECT SUBSTR('apple,orange,banana,grape', 1, INSTR('apple,orange,banana,grape', ',', 1, n) - 1) AS result
FROM dual;
在上面的代碼中,我們使用INSTR函數(shù)來查找字符串中第n個(gè)逗號(hào)的位置,然后使用SUBSTR函數(shù)來截取從第一個(gè)字符開始到第n個(gè)逗號(hào)之間的子字符串。
如果要獲取從第n個(gè)逗號(hào)開始到第m個(gè)逗號(hào)之間的子字符串,可以使用以下代碼:
SELECT SUBSTR('apple,orange,banana,grape', INSTR('apple,orange,banana,grape', ',', 1, n) + 1, INSTR('apple,orange,banana,grape', ',', 1, m) - INSTR('apple,orange,banana,grape', ',', 1, n) - 1) AS result
FROM dual;
在這個(gè)例子中,我們使用兩次INSTR函數(shù)來找到第n個(gè)逗號(hào)和第m個(gè)逗號(hào)的位置,然后使用SUBSTR函數(shù)來截取這兩個(gè)逗號(hào)之間的子字符串。