在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, '
之后的所有字符中提取了子字符串。