Ir al contenido principal

La función RPAD y LPAD ok


Las funciones RPAD y LPAD, también conocidas como llenado a la izquierda o llenado a la derecha. Funciones de llenado, devuelve una cadena de caracteres rellanada con un número específico  de caracteres a la izquierda a la derecha de la cadena fuente.  Los caracteres usados para llenar incluyen caracteres literales, columnas o expresiones. Literales números y fecha son implícitamente convertidos a carácter cuando estos aparecen como parámetros en la función LPAD y RPAD. Expresiones numéricas y fechas son evaluadas antes de ser convertidas a carácter. Espacios en blanco, tabs, caracteres especiales pueden ser utilizados como caracteres de llenado. 
Las funciones LPAD y RPAD toman tres parámetros, su sintaxis es: LPAD(s, n ,p) y RPAD(s, n, p)  donde s representa una cadena fuente, n representa la longitud final de la cadena devuelta, y p especifica el carácter que será utilizado para el llenado.
Si LPAD es utilizado, el carácter de llenado p son agregados a la izquierda de la cadena fuente s, hasta alcanzar la longitud n. Si RPAD es utilizado, el carácter de llenado p son agregado a la derecha de la cadena fuente s, hasta alcanzar la longitud n.
Tenga en cuenta, que si el parámetro n es más pequeño o igual a la longitud de la cadena fuente s, ninguna acción de llenado ocurre y la función devuelve  los primeros n caracteres  de la cadena fuente s.
El parámetro p es opcional, cuando no se especifica la cadena fuentes es llenada con espacios.

-- LA FUNCION LPAD Y RPAD
-- LOCATIONS COUNTRIES JOB_HISTORY REGIONS DEPARTMENTS EMPLOYEES JOBS
SELECT LPAD(min_salary,10,'*'), RPAD(max_salary,10,'*') FROM jobs;
SELECT RPAD(UPPER(city),20) FROM locations;
SELECT LPAD(min_salary, 20) FROM JOBS;

-- CUANDO NO SE ESPECIFICA EL TERCER PARAMETRO SE RELLENA CON ESPACIOS
SELECT LPAD(min_salary,20), RPAD(max_salary,20) FROM jobs;

-- EN ESTE EJEMPLO SE MUESTRA COMO SE RELLENA CON UNA CADENA DE DOS CARACTERES
-- SIEMPRE SE MANTIENE LA CADENA ORIGINAL Y SE RELLENA CON LA CADENA DE RELLENO
-- DE IZQUIERDA A DERECHA.
SELECT LPAD(min_salary,10,'ABC'), RPAD(max_salary,10,'ABC') FROM jobs;

-- CUANDO SE ESPECIFICA UNA LONGITUD MENOR, LA FUNCION CORTA LA CADENA FUENTE
-- DESDE EL INICIO HASTA LA LONGITUD ESPECIFICADA 
-- Y NO SE REALIZA NINGUN DE LLENADO.
-- EN ESTE EJEMPLO NO SE ESPECIFICO CARACTER DE RELLENO Y POR DEFECTO ES EL ESPACIO
SELECT  RPAD(region_id ||  ' - ' || region_name, 10) FROM regions;

SELECT LPAD(salary, 10, '0') lsalary, salary FROM employees ORDER BY salary DESC;

Comentarios