在Oracle數據庫中,SUBSTR
函數用于從字符串中提取子字符串。其基本語法為:
SUBSTR(string, start, length)
其中:
string
是要從中提取子字符串的原始字符串。start
是子字符串開始的位置(以1為基數)。如果省略該參數或為其指定負值,則從字符串的起始位置開始提取。length
是要提取的子字符串的長度。如果省略該參數,則提取從 start
位置開始的所有字符,直到字符串的末尾。下面是一些示例,說明如何設置 SUBSTR
函數的參數:
SELECT SUBSTR('Hello, World!', 5, 3) FROM dual;
這將返回 'lo'
。
2. 提取從第7個字符開始的5個字符,并指定負的 start
值以從字符串末尾開始計數:
SELECT SUBSTR('Hello, World!', -6, 5) FROM dual;
這將返回 'World'
。注意,由于我們從字符串的末尾開始計數,所以 -6
實際上是指向第6個字符(從1開始計數)。
3. 提取整個字符串(省略 start
和 length
參數):
SELECT SUBSTR('Hello, World!', 1, LENGTH('Hello, World!')) FROM dual;
這將返回整個字符串 'Hello, World!'
。
4. 使用 LENGTH
函數動態計算要提取的子字符串的長度:
SELECT SUBSTR('Hello, World!', 1, LENGTH('Hello, World!') - LENGTH('Hello, ')) FROM dual;
這將返回 'World!'
,因為我們從 'Hello, '
之后的所有字符中提取了子字符串。