Oracle SUBSTR() 函数使用指南
Oracle SUBSTR()
是一个内置函数,它返回从一个字符串中返回一个从指定位置开始的指定长度的子字符串。
Oracle 有几个与之类似的函数,只是它们计算长度的方式不同:
SUBSTR
使用输入字符集定义的字符计算长度。SUBSTRB
使用字节而不是字符计算长度。SUBSTRC
使用 Unicode 完整字符计算长度。SUBSTR2
使用 UCS2 代码点计算长度。SUBSTR4
使用 UCS4 代码点计算长度。
如果您需要使用从源字符串中匹配子字符串,请使用 REGEXP_SUBSTR()
。
Oracle SUBSTR()
语法
这里是 Oracle SUBSTR()
函数的语法:
SUBSTR(char, position [, substring_length ])
参数
char
-
必需的。从中提取子字符串的原字符串。它是
CHAR
,VARCHAR2
,NCHAR
,NVARCHAR2
,CLOB
, 或NCLOB
中的任何数据类型。 position
-
必需的。开始提取的位置。它可以是正数或者负数。如果是正数,则从字符串的开头为起始位置确定开始提取的位置提取子字符串。如果是负数,则从字符串的结尾为起始位置确定开始提取的位置提取子字符串。
substring_length
-
可选的。子字符串的长度(字符数)。如果不指定,则提取到原字符串的结尾。
返回值
Oracle SUBSTR()
函数从一个字符串中返回一个从指定位置开始的指定长度的子字符串。
- 如果
position
为0
,则将其视为1
。 - 如果
position
为正数,则 Oracle 从char
的开头计数以找到第一个字符。 - 如果
position
为负数,则 Oracle 从char
的末尾开始倒数。 - 如果
substring_length
省略,则 Oracle 返回到char
结尾的所有字符。 如果substring_length
小于1
,则 Oracle 返回NULL
。
Oracle SUBSTR()
示例
这里有几个展示了 Oracle SUBSTR()
函数用法的示例。
基本用法
SELECT
SUBSTR('Hello World', 7) Result
FROM dual;
输出:
RESULT
_________
World
子字符串长度
Oracle SUBSTR()
允许您指定字符串的长度。
SELECT
SUBSTR('Hello World', 8, 2) Result
FROM dual;
输出:
RESULT
_________
or
负数位置
Oracle SUBSTR()
允许您指定一个负数的位置参数。为位置指定负值会导致起始位置从字符串末尾向后计数:
SELECT
SUBSTR('Hello World', -5) Result
FROM dual;
输出:
RESULT
_________
World
NULL 参数
如果任意一个参数为 NULL
, SUBSTR()
将返回 NULL
。
SET NULL 'NULL';
SELECT
SUBSTR(NULL, 3) Result1,
SUBSTR('A', NULL) Result2,
SUBSTR('A', 1, NULL) Result3,
SUBSTR(NULL, NULL, NULL) Result4
FROM dual;
输出:
RESULT1 RESULT2 RESULT3 RESULT4
__________ __________ __________ __________
NULL NULL NULL NULL
在本示例中,我们使用 SET NULL 'NULL';
语句将 NULL
值显示为 'NULL'
字符串。
结论
Oracle SUBSTR()
是一个内置函数,它返回从一个字符串中返回一个从指定位置开始的指定长度的子字符串。