SUBSTRING - Amazon Kinesis Data Analytics
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

函数 结果

SUBSTRING('123456789' FROM 3 FOR 4)

3456

SUBSTRING('123456789' FROM 17 FOR 4)

<empty string>

SUBSTRING('123456789' FROM -1 FOR 4)

12

SUBSTRING('123456789' FROM 6 FOR 0)

<empty string>

SUBSTRING('123456789' FROM 8 FOR 4)

89

FROM Regex

函数 结果

SUBSTRING('TECHNOLOGY' FROM 'L[A-Z]*')

LOGY

SUBSTRING('TECHNOLOGY' FROM 'FOO')

null

SUBSTRING('TECHNOLOGY' FROM 'O[A-Z]')

OL

数值

函数 结果

SUBSTRING('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 | OCTETS”子句。只采用 USING CHARACTERS。

  • 上文列出的 SUBSTRING 函数的第二种和第三种形式 (使用正则表达式,并使用逗号而不是 FROM...FOR) 不是 SQL:2008 标准的一部分。它们是针对 Amazon Kinesis Data Analytics 的流式 SQL 扩展的一部分。