Lo puedo utilizar para rellenar cadenas de la longitud que necesite, muchas veces necesitamos llenarlas con espacios o algún carácter para hacer uso de la info exacto con el # de caracteres que nos pide un Pipeline o algo similar, para este tipo de casos sirven estas Funciones.
Jugar con figuras geométricas.
Estas Funciones solo las tiene POSTGRE; LPAD, RPAD, usamos también CAST.
LPAD = Rellena por la izquierda
RPAD = Rellena por la derecha
Ambas funcionan bajo la misma lógica que es; LPAD (” Texto que quiero”, “Extensión en # de la cadena”, “Con lo que quiero rellenar”)
SELECT lpad('SQL', '15', '*');
SELECT lpad('437', '5', '0');
SELECT rpad('437', '5', '0');
Quiero una cadena de extensión de 15 caracteres donde el String SQL sea rellenado con *.
00437
43700
TRIANGULO DE TODA LA TABLA
SELECT lpad('sql', id, '*')
FROM platzi.alumnos;
Hace lo mismo que la visualización de la derecha, solo que lo hace con toda la tabla. Con los mil registros.
TRANGULO CON ID MENOR A 10
SELECT lpad('sql', id, '*')
FROM platzi.alumnos
WHERE id < 10;

TRIANGULO DESORDENADO
SELECT lpad('sql', id, '*')
FROM platzi.alumnos
WHERE id < 10
ORDER BY carrera_id;

SELECT lpad('BARCELONA', '5', '+');
SIN ORDENAR POR OTRO CAMPO
SELECT lpad('*', CAST(row_id AS int), '*')
FROM (
SELECT ROW_NUMBER () OVER () AS row_id, *
FROM platzi.alumnos
) AS alumnos_witch_row_id
WHERE row_id <= 5;
ORDENANDO POR OTRO CAMPO
SELECT lpad('*', CAST(row_id AS int), '*')
FROM (
SELECT ROW_NUMBER () OVER (ORDER BY carrera_id) AS row_id, *
FROM platzi.alumnos
) AS alumnos_witch_row_id
WHERE row_id <= 5
ORDER BY carrera_id;
CAST = Convierte a INTEGER Dentro de CAST, el AS sirve para decir el Tipo de Dato que es.
Probar la Función RPAD.