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

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。

示例

函数 结果

OVERLAY ('12345' PLACING 'foo' FROM 1)

foo45

OVERLAY ('12345' PLACING 'foo' FROM 0)

foo345

OVERLAY ('12345' PLACING 'foo' FROM -2)

foo12345

OVERLAY ('12345' PLACING 'foo' FROM 4)

123foo

OVERLAY ('12345' PLACING 'foo' FROM 17)

12345foo

OVERLAY ('12345' PLACING 'foo' FROM 2 FOR 0)

1foo2345

OVERLAY ('12345' PLACING 'foo' FROM 2 FOR 2)

1foo45

OVERLAY ('12345' PLACING 'foo' FROM 2 FOR 9)

1foo

限制

Amazon Kinesis Data Analytics 不支持在 SQL:2008 中定义的可选 USING CHARACTERS | OCTETS 子句;仅假定 USING CHARACTERS。严格的 SQL:2008 还要求小于 1 的开始位置返回 null 结果,而不是上述行为。这些都背离了此标准。