Oracle的SUBSTR
函數用于從一個字符串中提取子字符串。它有兩種語法形式:
SUBSTR(string, start_position)
SUBSTR(string, start_position, length)
其中,string
是要操作的字符串,start_position
是子字符串開始的位置(從1開始計數),length
是子字符串的長度。
以下是SUBSTR
函數在不同場景下的應用示例:
如果你想從一個字符串中提取特定長度的子字符串,可以使用SUBSTR(string, start_position, length)
形式。
例如,從字符串'Hello, World!'
中提取前5個字符:
SELECT SUBSTR('Hello, World!', 1, 5) AS result FROM dual;
結果將會是'Hello'
。
如果你想從一個字符串中提取從某個位置開始的子字符串,可以使用SUBSTR(string, start_position)
形式。
例如,從字符串'Hello, World!'
中提取從第7個字符開始的子字符串:
SELECT SUBSTR('Hello, World!', 7) AS result FROM dual;
結果將會是'World!'
。
如果你想從一個字符串中提取兩個指定字符之間的子字符串,可以結合INSTR
函數使用SUBSTR
函數。
例如,從字符串'Hello, World!'
中提取逗號和感嘆號之間的子字符串:
SELECT SUBSTR('Hello, World!', INSTR('Hello, World!', ',') + 1, INSTR('Hello, World!', '!') - INSTR('Hello, World!', ',') - 1) AS result FROM dual;
結果將會是' World'
。
注意:這里的INSTR
函數用于查找子字符串在原字符串中的位置。
如果你想從一個字符串中提取符合特定模式的子字符串,可以結合REGEXP_SUBSTR
函數使用SUBSTR
函數。
例如,從字符串'Hello, 123 World!'
中提取所有數字:
SELECT REGEXP_SUBSTR('Hello, 123 World!', '\d+') AS result FROM dual;
結果將會是'123'
。
注意:這里的\d+
是一個正則表達式,表示匹配一個或多個數字。
總之,SUBSTR
函數在Oracle中非常實用,可以幫助你輕松地處理字符串數據。