REPEAT 标量函数 (scalar function)
重复功能返回一个字符串,该字符串由一个参数组成,该参数重复指定的次数。
该模式是 SYSIBM。
- 表达式
- 指定要重复的字符串的表达式。 表达式必须返回一个值,该值是内置字符串、图形字符串或二进制字符串数据类型,且不是LOB。
该参数也可以是数字数据类型。 数字参数将隐式强制转换为 VARCHAR 数据类型。
字符串的实际长度必须大于或等于1且小于或等于32704字节。 - 整数
- integer 必须是一个正整数,用于指定字符串的重复次数。
参数也可以是字符串或图形字符串数据类型。 字符串输入隐式转换为DECFLOAT(34)的数值,然后赋值给INTEGER。
结果可以为空; 如果任何自变量为空,那么结果为空值。
结果的编码方案与表达式相同。 函数结果的数据类型取决于表达式的数据类型:
- VARBINARY if expression is a binary string
- VARCHAR if expression 是一个字符串
- VARGRAPHIC if expression is graphic string
结果的CCSID 与表达式的 CCSID相同。
如果 integer 是一个常数,则结果的长度属性为表达式乘以 integer 的长度属性。 否则,长度属性取决于结果的数据类型:
- VARBINARY和VARCHAR为4000
- 2000年,VARGRAPHIC
结果的实际长度是表达式实际长度乘以整数。 如果结果字符串的实际长度超过了返回类型的最大值,则会发生错误。
示例1 :重复“abc”两次,得到“abcabc”。
SELECT REPEAT('abc',2)
FROM SYSIBM.SYSDUMMY1;示例2 :将短语“REPEAT THIS”重复五次。 使用CHAR函数将输出限制为60字节。
SELECT CHAR(REPEAT('REPEAT THIS',5), 60)
FROM SYSIBM.SYSDUMMY1;这个例子生成的结果是“REPEAT THISREPEAT THISREPEAT THISREPEAT THISREPEAT THIS ”。示例 3 :对于以下查询,LENGTH 函数返回值为 0,因为重复一个字符串零次的结果是空字符串,即零长度字符串。
SELECT LENGTH(REPEAT('REPEAT THIS',0))
FROM SYSIBM.SYSDUMMY1;示例 4 :对于以下查询,LENGTH 函数返回值为 0,因为重复一个空字符串任意多次的结果都是空字符串,而空字符串是零长度字符串。
SELECT LENGTH(REPEAT('', 5))
FROM SYSIBM.SYSDUMMY1;