Cadenas

REPEAT

Repite una cadena el número de veces indicado.

Sintaxis

REPEAT(<texto>, <veces>)

Une una cadena consigo misma: REPEAT('ab', 3) da ababab. Útil para gráficos de barras sencillos directamente en el resultado de la consulta, para separadores o para enmascarar: REPEAT('*', 4).

Datos para los ejemplos

employees

namedepartmentsalarybonusphone
Emmabackend1200300+44 7700 900123
Liambackend1000NULLNULL
Oliviafrontend1350150+44 7700 900456
Noahfrontend950NULL+44 7700 900789
Sophiadesign1200200NULL

Estas tablas ya están creadas en el entorno de pruebas y los ejemplos de abajo las usan. ¿Quieres repetirlo en tu propia base de datos? Copia el SQL.

Repetir una cadena
SELECT REPEAT('ab', 3) AS repeated,
REPEAT('-', 10) AS line;
repeatedline
ababab----------
Una barra con el salario
SELECT name, salary,
REPEAT('█', salary / 100) AS bar
FROM employees;
namesalarybar
Emma1200████████████
Liam1000██████████
Olivia1350█████████████
Noah950█████████
Sophia1200████████████

Cada cuadradito son 100 de salario. La división de enteros descarta el resto, así que la cantidad sale entera.

Ocultar el teléfono menos las últimas cifras
SELECT name,
REPEAT('*', LENGTH(phone) - 3) || RIGHT(phone, 3) AS masked_phone
FROM employees;
namemasked_phone
Emma************123
LiamNULL
Olivia************456
Noah************789
SophiaNULL

Ten en cuenta

Cero o una cantidad negativa no es un error, sino una cadena vacía: REPEAT('ab', -1) da ''.

La cantidad debe ser un entero: REPEAT('*', salary / 100.0) da el error function repeat(unknown, numeric) does not exist. Convierte el tipo: (salary / 100.0)::int.

Funciones relacionadas