REPEAT
描述
REPEAT 函数用于将指定字符串重复指定次数,生成新的字符串。该函数常用于生成填充字符、创建分隔符或生成测试数据。
语法
REPEAT(<str>, <count>)
参数
| 参数 | 说明 |
|---|---|
<str> | 需要重复的源字符串。类型:VARCHAR |
<count> | 重复次数,必须为非负整数。类型:INT |
返回值
返回 VARCHAR 类型,表示重复指定次数后的字符串。
重复规则:
- count 大于 0 时,返回 str 重复 count 次的结果
- count 等于 0 时,返回空字符串
- count 小于 0 时,返回空字符串
- 如果结果字符串过长,可能受到字符串长度限制
特殊情况:
- 如果任意参数为 NULL,返回 NULL
- 如果 str 为空字符串,无论 count 为多少都返回空字符串
- 如果 count 为 0,返回空字符串
- 如果 count 为负数,返回空字符串
示例
- 基本字符重复
SELECT REPEAT('a', 3);
+----------------+
| REPEAT('a', 3) |
+----------------+
| aaa |
+----------------+
- 多字符字符串重复
SELECT REPEAT('hello', 2);
+--------------------+
| REPEAT('hello', 2) |
+--------------------+
| hellohello |
+--------------------+
- 零次重复
SELECT REPEAT('test', 0);
+-------------------+
| REPEAT('test', 0) |
+-------------------+
| |
+-------------------+
- 负数重复
SELECT REPEAT('a', -1);
+-----------------+
| REPEAT('a', -1) |
+-----------------+
| |
+-----------------+
- NULL 值处理
SELECT REPEAT(NULL, 3), REPEAT('a', NULL);
+------------------+-------------------+
| REPEAT(NULL, 3) | REPEAT('a', NULL) |
+------------------+-------------------+
| NULL | NULL |
+------------------+-------------------+
- 空字符串重复
SELECT REPEAT('', 5);
+----------------+
| REPEAT('', 5) |
+----------------+
| |
+----------------+
- 特殊字符重复
SELECT REPEAT('-', 10), REPEAT('*', 5);
+------------------+-----------------+
| REPEAT('-', 10) | REPEAT('*', 5) |
+------------------+-----------------+
| ---------- | ***** |
+------------------+-----------------+
- UTF-8 字符重复
SELECT REPEAT('ṭṛì', 3), REPEAT('ḍḍu', 2);
+-------------------+-------------------+
| REPEAT('ṭṛì', 3) | REPEAT('ḍḍu', 2) |
+-------------------+-------------------+
| ṭṛìṭṛìṭṛì | ḍḍuḍḍu |
+-------------------+-------------------+
- 数字和符号混合
SELECT REPEAT('123', 3), REPEAT('@#', 4);
+-------------------+------------------+
| REPEAT('123', 3) | REPEAT('@#', 4) |
+-------------------+------------------+
| 123123123 | @#@#@#@# |
+-------------------+------------------+
- utf-8 字符重复
SELECT REPEAT('ṭṛìṭṛì', 3);
+--------------------------------------------------+
| REPEAT('ṭṛìṭṛì', 3) |
+--------------------------------------------------+
| ṭṛìṭṛìṭṛìṭṛìṭṛìṭṛì |
+--------------------------------------------------+