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

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

OVERLAY

OVERLAY ( <original-string>           PLACING <replacement-string>           FROM <start-position>           [ FOR <string-length> ]         ) <original-string> := <character-expression> <replacement-string> := <character-expression> <start-position> := <integer-expression> <string-length> := <integer-expression>

OVERLAY 函数用于将第一个字符串参数(原始字符串)的一部分替换为第二个字符串参数(替换字符串)。

起始位置表示原始字符串中的字符位置,替换字符串应在此重叠的位置。可选的字符串长度参数确定要替换的原始字符串的多少个字符(如果未指定,则默认为替换字符串的长度)。如果替换字符串中的字符多于原始字符串中剩余的字符,则只需附加剩余字符即可。

如果起始位置大于原始字符串的长度,则只需附加替换字符串即可。如果起始位置小于 1,则替换字符串的(1-起始位置)字符优先于结果,其余字符叠加在原始字符串上(参见以下示例)。

如果字符串长度小于零,则引发异常。

如果任何输入参数为 null,则结果为 null。

示例

函数 结果

叠加('12345' 放置 1 中的 'foo')

foo45

叠加('12345' 从 0 放置 'foo')

foo345

叠加('12345' 从 -2 放置 'foo')

foo12345

叠加('12345' 放置 4 中的 'foo')

123foo

叠加('12345' 放置 17 中的 'foo')

12345foo

叠加('12345' 将 2 中的 'foo' 置入 0)

1foo2345

叠加('12345' 将来自 2 的 'foo' 置入 2)

1foo45

叠加('12345' 将 2 中的 'foo' 置入 9)

1foo

限制

Amazon Kinesis Data Analytics 不支持 SQL: 2008 中定义的可选 “使用字符 | OCTETS” 子句;只是假设使用字符。严格的 SQL: 2008 还要求小于 1 的起始位置返回空结果,而不是上述行为。这些偏离了标准。