Рядки

LPAD

Доповнює рядок зліва до потрібної довжини.

Синтаксис

LPAD(<текст>, <довжина>)
LPAD(<текст>, <довжина>, <чим доповнити>)

Дописує символи на початок, доки рядок не стане потрібної довжини; без третього аргументу — пробілами. Дзеркальна функція — RPAD, вона доповнює справа. Найчастіше — щоб номери мали однакову ширину: 7 → 0007.

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

orders

idcreated_atamount
12026-07-03 10:15:00120.50
22026-07-28 18:40:0080.25
32026-08-09 09:05:00199.99
42026-08-21 14:30:0045.00
52026-09-02 11:00:0064.75

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

Нулі попереду
SELECT LPAD('7', 4, '0') AS padded;
padded
0007
Номери замовлень однакової ширини
SELECT id,
LPAD(id::text, 5, '0') AS order_number
FROM orders;
idorder_number
100001
200002
300003
400004
500005

LPAD працює з текстом, тому число спершу перетворюємо: id::text.

Номер із префіксом
SELECT id,
CONCAT('ORD-', LPAD(id::text, 5, '0')) AS order_code
FROM orders;
idorder_code
1ORD-00001
2ORD-00002
3ORD-00003
4ORD-00004
5ORD-00005

Зверни увагу

Довший рядок LPAD обріже, а не лишить як є: LPAD('12345', 3, '0') дає 123.

Приймає лише текст: LPAD(1, 5, '0') — помилка function lpad(integer, integer, unknown) does not exist. Приведи тип: LPAD(id::text, 5, '0').

Для чисел є й інший шлях: TO_CHAR(1, 'FM00000') дає 00001.

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