Рядки

REPEAT

Повторює рядок задану кількість разів.

Синтаксис

REPEAT(<текст>, <скільки разів>)

Склеює рядок сам із собою: REPEAT('ab', 3) дає ababab. Зручно для простеньких смужок-графіків просто в результаті запиту, роздільників чи маскування: REPEAT('*', 4).

Дані для прикладів

employees

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

Ці таблиці вже створено в пісочниці — приклади нижче працюють із ними. Хочеш повторити у своїй базі — скопіюй SQL.

Повторити рядок
SELECT REPEAT('ab', 3) AS repeated,
REPEAT('-', 10) AS line;
repeatedline
ababab----------
Смужка-графік зарплати
SELECT name, salary,
REPEAT('█', salary / 100) AS bar
FROM employees;
namesalarybar
Emma1200████████████
Liam1000██████████
Olivia1350█████████████
Noah950█████████
Sophia1200████████████

Один квадратик — 100 зарплати. Ділення цілих відкидає залишок, тож кількість виходить цілою.

Приховати телефон, крім останніх цифр
SELECT name,
REPEAT('*', LENGTH(phone) - 3) || RIGHT(phone, 3) AS masked_phone
FROM employees;
namemasked_phone
Emma************123
LiamNULL
Olivia************456
Noah************789
SophiaNULL

Зверни увагу

Нуль чи від'ємна кількість — не помилка, а порожній рядок: REPEAT('ab', -1) дає ''.

Кількість має бути цілою: REPEAT('*', salary / 100.0) дасть помилку function repeat(unknown, numeric) does not exist. Приведи тип: (salary / 100.0)::int.

Схожі функції