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.

CLASE

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');
  1. Triangulo de la tabla:

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;

TRI.png

TRIANGULO DESORDENADO

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

TRII.png

  1. Cuando Queremos cortar texto:
SELECT lpad('BARCELONA', '5', '+');
  1. Si queremos formar triángulos es mejor usar el número de Fila en lugar de los Id:

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.

RETO

Probar la Función RPAD.