Cadenas

LPAD

Rellena una cadena por la izquierda hasta la longitud que necesites.

Sintaxis

LPAD(<texto>, <longitud>)
LPAD(<texto>, <longitud>, <relleno>)

Añade caracteres al principio hasta que la cadena alcance la longitud necesaria; sin el tercer argumento, espacios. Su contraparte es RPAD, que rellena por la derecha. Lo más habitual es usarla para que los números tengan el mismo ancho: 7 → 0007.

Datos para los ejemplos

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

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.

Ceros a la izquierda
SELECT LPAD('7', 4, '0') AS padded;
padded
0007
Números de pedido del mismo ancho
SELECT id,
LPAD(id::text, 5, '0') AS order_number
FROM orders;
idorder_number
100001
200002
300003
400004
500005

LPAD trabaja con texto, así que primero convertimos el número: id::text.

Un número con prefijo
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

Ten en cuenta

LPAD recorta una cadena más larga en vez de dejarla como está: LPAD('12345', 3, '0') da 123.

Solo acepta texto: LPAD(1, 5, '0') da el error function lpad(integer, integer, unknown) does not exist. Convierte el tipo: LPAD(id::text, 5, '0').

Para los números hay otra vía: TO_CHAR(1, 'FM00000') da 00001.

Funciones relacionadas