本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
SUBSTRING
SUBSTRING ( <source-string> FROM <start-position> [ FOR <string-length> ] ) SUBSTRING ( <source-string>, <start-position> [ , <string-length> ] ) SUBSTRING ( <source-string> SIMILAR <pattern> ESCAPE <escape-char> ) <source-string> := <character-expression> <start-position> := <integer-expression> <string-length> := <integer-expression> <regex-expression> := <character-expression> <pattern> := <character-expression> <escape-char> := <character-expression>
SUBSTRING 提取第一个参数中指定的源字符串的一部分。提取从 start-position 的值或第一个与 regex-expression 的值匹配的表达式开始。
如果为 string-length 指定一个值,则仅返回该数量的字符。如果字符串中剩下的字符不多,则只返回剩下的字符。如果未指定 string-length,该字符串长度默认为输入字符串的剩余长度。
如果起始位置小于 1,则将起始位置解释为 1,字符串长度减小(1-起始位置)。有关示例,请参阅下文。如果起始位置大于字符串中的字符数,或长度参数为 0,则结果为空字符串。
参数
source-string
用于搜索位置或正则表达式匹配项的字符串。
start-position
要返回的 source-string 的第一个字符。如果 start-position 大于 source-string 的长度,则 SUBSTRING 返回 null。
string-length
要返回的 source-string 的字符数。
regex-expression
要匹配并从 source-string 返回的字符模式。仅返回第一个匹配项。
pattern
包含以下内容的三部分字符模式:
要在返回的子字符串之前查找的字符串
返回的子字符串
要在返回的子字符串之后查找的字符串
这些部分由双引号 (“) 和指定的引号字符是分隔的。有关更多信息,请参阅以下Similar...Escape示例。
示例
FROM/ FOR
函数 | 结果 |
---|---|
子字符串(从 3 换为 4 的 '123456789') |
3456 |
子字符串(从 17 换为 4 的 '123456789') |
<empty string> |
子字符串(来自 -1 的'123456789'换为 4) |
12 |
子字符串('123456789' 从 6 变为 0) |
<empty string> |
子字符串(从 8 换为 4 的 '123456789') |
89 |
FROM Regex
函数 | 结果 |
---|---|
SUBSTRING('TECHNOLOGY' FROM 'L[A-Z]*') | LOGY |
SUBSTRING('TECHNOLOGY' FROM 'FOO') | null |
SUBSTRING('TECHNOLOGY' FROM 'O[A-Z]') | OL |
数值
函数 | 结果 |
---|---|
子字符串 ('123456789'、3、4) |
3456 |
SUBSTRING('123456789', 7, 4) |
789 |
SUBSTRING('123456789', 10, 4) |
null |
Similar...Escape
函数 | 结果 |
---|---|
SUBSTRING('123456789' SIMILAR '23#"456#"78' ESCAPE '#') |
456 |
SUBSTRING('TECHNOLOGY' SIMILAR 'TECH%"NOLO%"GY' ESCAPE '%') |
NOLO |
注意
Amazon Kinesis Data Analytics 直播 SQL 不支持 SQL: 2008 中定义的可选 “使用字符 | 八位字节” 条款。只采用 USING CHARACTERS。
前面列出的 SUBSTRING 函数的第二和第三种形式(使用正则表达式,使用逗号而不是 FROM... FOR)不是 SQL: 2008 标准的一部分。它们是Amazon Kinesis Data Analytics 的直播 SQL 扩展的一部分。