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
Publicar un comentario