第135章 SQL函数 SUBSTR
返回从指定字符串表达式派生的子字符串的字符串函数。
大纲
SUBSTR(string-expression,start[,length])
参数
-
string-expression
- 要从中派生子字符串的字符串表达式。表达式可以是列名、字符串文字或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(例如CHAR
或VARCHAR
)。 -
start
- 一个整数,它指定子字符串在字符串表达式中的开始位置。正的起始位置指定从字符串开头开始的字符数。string-expression1
中的第一个字符位于位置1
。负起始位置指定从字符串末尾算起的字符数。如果start
为0
(零),则将其视为1
。 -
length
- 可选 — 一个正整数,指定要返回的子字符串的长度。此值指定子字符串在起始位置右侧结束长度字符。如果省略,则子字符串从字符串表达式的开头到结尾。如果长度为0
或负数, 返回NULL
。
描述
因为 start
可以是负数,所以可以从原始字符串的开头或结尾获取子字符串。
作为参数传递给 SUBSTR
的浮点数通过截断小数部分转换为整数。
- 如果
start
为0
、–0
或1
,则返回的子字符串从字符串的第一个字符开始。 - 如果
start
是负数,则返回的子字符串从字符串末尾开始该数量的字符,-1
表示字符串的最后一个字符。如果负数太大以至于从字符串末尾向后计数的值将位于字符串开头之前,则返回的子字符串从字符串的第一个字符开始。 - 如果
start
超过了字符串的结尾,则返回NULL
。 - 如果长度大于字符串中剩余的字符,则返回从字符串开头到结尾的子字符串。
- 如果长度小于
1
,则返回NULL
。 - 如果
start
或length
为NULL
,则返回NULL
。
SUBSTR
不能与流数据一起使用。如果 string-expression
是流字段,则 SUBSTR
生成 SQLCODE -37
。使用 SUBSTRING
从流数据中提取子字符串。
Oracle
兼容性支持 SUBSTR
。
示例
以下示例返回子字符串 CDEFG
,因为它指定子字符串从第三个字符 (C
) 开始并继续到字符串的末尾:
SELECT SUBSTR('ABCDEFG',3) AS Sub
CDEFG
以下示例返回子字符串 CDEF
,因为它指定子字符串从第三个字符 (C
) 开始并持续四个字符(直到 F
):
SELECT SUBSTR('ABCDEFG',3,4) AS Sub
CDEF
以下示例返回子字符串 CDEF
,因为它指定 应首先从原始字符串的末尾倒数五个字符,然后返回接下来的四个字符:
SELECT SUBSTR('ABCDEFG',-5,4) AS Sub
CDEF
网友评论