REPEAT 标量函数 (scalar function)

重复功能返回一个字符串,该字符串由一个参数组成,该参数重复指定的次数。

阅读语法图跳过可视化语法图REPEAT( 表达式, 整数)

该模式是 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;