本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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 子句;仅假设使用字符。Strict SQL: 2008 还要求起始位置小于 1 返回空结果,而不是上述行为。这些与标准背道而驰。