SUBSTRING - Amazon Kinesis Data Analytics

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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 扩展的一部分。