Oracle SQL proporciona un amplio conjunto de funciones para trabajar con datos de forma eficiente. Este artículo ofrece ejemplos prácticos para entender y utilizar funciones esenciales organizadas por categorías: conversión, manejo de fechas, cadenas y operaciones numéricas.
1. Funciones de Decodificación y Comparación
DECODE: Proporciona una lógica condicional similar a unCASEen otras bases de datos.SELECT DECODE(JOB_ID, 'IT_PROG', 'Developer', 'SA_MAN', 'Sales Manager', 'Other') AS JOB_DESCRIPTION FROM EMPLOYEES;
2. Funciones de Información del Usuario
USER: Devuelve el nombre del usuario actual.SELECT USER AS CURRENT_USER FROM DUAL;UID: Devuelve el identificador único del usuario.SELECT UID AS USER_ID FROM DUAL;
3. Funciones de Conversión
TO_CHAR: Convierte números o fechas a cadenas formateadas.SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') AS FORMATTED_DATE FROM DUAL; SELECT TO_CHAR(12345.67, '99999.99') AS FORMATTED_NUMBER FROM DUAL;TO_DATE: Convierte una cadena a un formato de fecha.SELECT TO_DATE('2024-11-25', 'YYYY-MM-DD') AS DATE_VALUE FROM DUAL;TO_NUMBER: Convierte cadenas a números.SELECT TO_NUMBER('12345.67') AS NUMBER_VALUE FROM DUAL;
4. Funciones de Manejo de Fechas
SYSDATE: Devuelve la fecha y hora actuales.SELECT SYSDATE AS CURRENT_DATE FROM DUAL;ADD_MONTHS: Añade o resta meses a una fecha.SELECT ADD_MONTHS(SYSDATE, 6) AS FUTURE_DATE FROM DUAL;LAST_DAY: Obtiene el último día del mes de una fecha.SELECT LAST_DAY(SYSDATE) AS END_OF_MONTH FROM DUAL;MONTHS_BETWEEN: Calcula la diferencia en meses entre dos fechas.SELECT MONTHS_BETWEEN(SYSDATE, TO_DATE('2024-01-01', 'YYYY-MM-DD')) AS MONTHS_DIFF FROM DUAL;NEXT_DAY: Encuentra el próximo día de la semana especificado.SELECT NEXT_DAY(SYSDATE, 'FRIDAY') AS NEXT_FRIDAY FROM DUAL;
5. Funciones de Cadenas
CHRyASCII: Convierte entre valores ASCII y caracteres.SELECT CHR(65) AS CHARACTER_A, ASCII('A') AS ASCII_VALUE FROM DUAL;CONCAT: Une dos cadenas.SELECT CONCAT('Hello', ' World') AS GREETING FROM DUAL;LOWER,UPPER,INITCAP: Convierte cadenas a minúsculas, mayúsculas o título.SELECT LOWER('HELLO'), UPPER('hello'), INITCAP('hello world') FROM DUAL;LPAD,RPAD: Rellena cadenas con caracteres.SELECT LPAD('123', 5, '0') AS PADDED_LEFT, RPAD('123', 5, '*') AS PADDED_RIGHT FROM DUAL;SUBSTR: Extrae una subcadena.SELECT SUBSTR('HELLO WORLD', 1, 5) AS SUBSTRING FROM DUAL;INSTR: Encuentra la posición de una subcadena.SELECT INSTR('HELLO WORLD', 'WORLD') AS POSITION FROM DUAL;LENGTH: Devuelve la longitud de una cadena.SELECT LENGTH('HELLO') AS STRING_LENGTH FROM DUAL;
6. Funciones Numéricas
ABSySIGN: Devuelve el valor absoluto o el signo de un número.SELECT ABS(-10) AS ABSOLUTE_VALUE, SIGN(-10) AS SIGN_VALUE FROM DUAL;CEILyFLOOR: Redondeo hacia arriba o abajo.SELECT CEIL(10.2) AS CEIL_VALUE, FLOOR(10.8) AS FLOOR_VALUE FROM DUAL;MOD: Calcula el residuo de una división.SELECT MOD(10, 3) AS MOD_VALUE FROM DUAL;ROUNDyTRUNC: Redondea o trunca números.SELECT ROUND(123.456, 2) AS ROUNDED, TRUNC(123.456, 2) AS TRUNCATED FROM DUAL;POWERySQRT: Calcula potencias y raíces cuadradas.SELECT POWER(2, 3) AS POWER_RESULT, SQRT(16) AS SQUARE_ROOT FROM DUAL;
7. Funciones de Agregación
AVG,COUNT,MAX,MIN,SUM:SELECT AVG(SALARY) AS AVERAGE_SALARY, MAX(SALARY) AS MAX_SALARY, MIN(SALARY) AS MIN_SALARY, SUM(SALARY) AS TOTAL_SALARY FROM EMPLOYEES;VARIANCE: Calcula la varianza.SELECT VARIANCE(SALARY) AS SALARY_VARIANCE FROM EMPLOYEES;
8. Funciones de Comparación
GREATESTyLEAST:SELECT GREATEST(10, 20, 30) AS MAX_VALUE, LEAST(10, 20, 30) AS MIN_VALUE FROM DUAL;
Estas funciones son fundamentales para trabajar con datos en Oracle SQL. Cada una cumple un propósito específico y puede combinarse para crear consultas más avanzadas y optimizadas. ¡Experimenta con estos ejemplos para mejorar tus habilidades!

