Oracle SQL ofrece una amplia variedad de funciones para procesar datos de forma eficiente. En este artículo exploraremos diversas categorías de funciones, incluyendo funciones de conversión, manejo de fechas, operaciones con cadenas y valores numéricos, entre otras.
1. Funciones de Decodificación y Comparación
DECODE(var, val1, cod1, val2, cod2, ..., valor_por_defecto)
La funciónDECODE
es útil para realizar comparaciones en una sola línea. Ejemplo:SELECT DECODE(DEPARTMENT_ID, 10, 'HR', 20, 'IT', 'OTHER') AS DEPARTMENT_NAME FROM EMPLOYEES;
2. Funciones de Información del Usuario
USER
: Devuelve el nombre del usuario actual.SELECT USER FROM DUAL;
UID
: Devuelve el identificador único del usuario.SELECT UID FROM DUAL;
3. Funciones de Conversión
TO_CHAR
(para fechas y números)
Convierte fechas o números en cadenas en un formato específico. Ejemplo (fecha):SELECT TO_CHAR(SYSDATE, 'DD-MM-YYYY') AS FORMATTED_DATE FROM DUAL;
Ejemplo (número):SELECT TO_CHAR(12345.678, '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 una cadena a un número.SELECT TO_NUMBER('12345') AS NUMBER_VALUE FROM DUAL;
4. Funciones de Manejo de Fechas
SYSDATE
: Devuelve la fecha y hora actuales.SELECT SYSDATE FROM DUAL;
ADD_MONTHS
: Añade o resta meses a una fecha.SELECT ADD_MONTHS(SYSDATE, 3) AS FUTURE_DATE FROM DUAL;
LAST_DAY
: Devuelve 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
: Devuelve la siguiente ocurrencia de un día de la semana.SELECT NEXT_DAY(SYSDATE, 'MONDAY') AS NEXT_MONDAY FROM DUAL;
5. Funciones de Manejo de Cadenas
CHR(n)
: Devuelve el carácter ASCII correspondiente.SELECT CHR(65) AS CHARACTER FROM DUAL;
CONCAT(cad1, cad2)
: Une dos cadenas.SELECT CONCAT('Hello', ' World') AS GREETING FROM DUAL;
LOWER
yUPPER
: Convierte cadenas a minúsculas o mayúsculas.SELECT LOWER('HELLO') AS LOWERCASE, UPPER('hello') AS UPPERCASE FROM DUAL;
INITCAP
: Capitaliza la primera letra de cada palabra.SELECT INITCAP('hello world') AS TITLECASE FROM DUAL;
LPAD
yRPAD
: Rellena cadenas a la izquierda o derecha.SELECT LPAD('123', 5, '0') AS LEFT_PADDED FROM DUAL;
SUBSTR
: Extrae una parte de la cadena.SELECT SUBSTR('HELLO WORLD', 1, 5) AS SUBSTRING FROM DUAL;
LENGTH
: Devuelve la longitud de una cadena.SELECT LENGTH('HELLO') AS LENGTH FROM DUAL;
6. Funciones Numéricas
ABS(n)
: Valor absoluto.SELECT ABS(-10) AS ABSOLUTE_VALUE FROM DUAL;
CEIL
yFLOOR
: Redondeo hacia arriba o abajo.SELECT CEIL(10.2) AS CEIL_VALUE, FLOOR(10.8) AS FLOOR_VALUE FROM DUAL;
MOD
: Devuelve el residuo de una división.SELECT MOD(10, 3) AS MOD_VALUE FROM DUAL;
ROUND
yTRUNC
: Redondea o trunca números.SELECT ROUND(123.456, 2) AS ROUNDED, TRUNC(123.456, 2) AS TRUNCATED FROM DUAL;
POWER
ySQRT
: Calcula potencias y raíces cuadradas.SELECT POWER(2, 3) AS POWER_RESULT, SQRT(16) AS SQUARE_ROOT FROM DUAL;
7. Funciones de Grupo
AVG
,COUNT
,MAX
,MIN
,SUM
: Calcula promedio, cuenta, máximo, mínimo y suma.SELECT AVG(SALARY), MAX(SALARY), MIN(SALARY), SUM(SALARY) FROM EMPLOYEES;
VARIANCE
: Calcula la varianza de un conjunto de valores.SELECT VARIANCE(SALARY) AS VARIANCE FROM EMPLOYEES;
8. Funciones de Comparación
GREATEST
yLEAST
: Devuelve el mayor o menor valor entre múltiples argumentos.SELECT GREATEST(10, 20, 30) AS MAX_VALUE, LEAST(10, 20, 30) AS MIN_VALUE FROM DUAL;
Estas funciones son herramientas esenciales para trabajar con datos en Oracle SQL. Dominar su uso te permitirá resolver problemas complejos con facilidad y eficiencia. ¡Pruébalas en tus proyectos!