--ASQL
Funciones de una sola fila: (4-1)
Lenght: Definición: Devuelve la cantidad de
caracteres que tiene una cadena de texto.
Ejemplo:
SELECT LENGTH('EMILIO') FROM dual;
Resultado: 6
LPAD: Definición: Agrega caracteres a la izquierda
de una cadena hasta completar una longitud
específica.
Ejemplo:
SELECT LPAD('123', 5, '0') FROM dual;
Resultado: 00123
RPAD: Definición: Agrega caracteres a la derecha
de una cadena hasta completar una longitud
específica.
Ejemplo:
SELECT RPAD('123', 5, '0') FROM dual;
Resultado: 12300
SUBSTR:Definición: Extrae una parte de una cadena
desde una posición determinada.
Ejemplo:
SELECT SUBSTR('EMILIO', 2, 3) FROM dual;
Resultado: MIL
CONCAT:Definición: Une dos cadenas de texto.
Ejemplo:
SELECT CONCAT('EMI', 'LIO') FROM dual;
Resultado: EMILIO
INSTR:Definición: Devuelve la posición donde se
encuentra un texto dentro de otro.
Ejemplo:
SELECT INSTR('EMILIO', 'LI') FROM dual;
Resultado: 4
TRIM:Definición: Elimina espacios en blanco al
inicio y al final de una cadena.
Ejemplo:
SELECT TRIM(' EMILIO ') FROM dual;
Resultado: EMILIO
REPLACE:Definición: Reemplaza una parte del texto
por otra.
Ejemplo:
SELECT REPLACE('EMILIO', 'L', 'X') FROM dual;
Resultado: EMILIO
UPPER: Definición: Convierte el texto a
mayúsculas.
Ejemplo:
SELECT UPPER('emilio') FROM dual;
Resultado: EMILIO
LOWER: Definición: Convierte el texto a
minúsculas.
Ejemplo:
SELECT LOWER('EMILIO') FROM dual;
Resultado: emilio
INITCAP: Definición: Convierte la primera letra de
cada palabra en mayúscula y las demás en
minúscula.
Ejemplo:
SELECT INITCAP('emilio munoz') FROM dual;
Resultado: Emilio Munoz
Funciones Numericas:
Round:Definición: Redondea un número al número de
decimales que se indique.
Ejemplo 1 (con decimales):
SELECT ROUND(45.678, 2) FROM dual;
Resultado: 45.68
Ejemplo 2 (sin decimales):
SELECT ROUND(45.678) FROM dual;
Resultado: 46
Trunc:Definición: Corta el número en la cantidad
de decimales indicada sin redondear.
Ejemplo 1:
SELECT TRUNC(45.678, 2) FROM dual;
Resultado: 45.67
Ejemplo 2:
SELECT TRUNC(45.678) FROM dual;
Resultado: 45
Mod:Definición: Devuelve el residuo (resto) de una
división.
Ejemplo:
SELECT MOD(10, 3) FROM dual;
Resultado: 1
(Porque 10 ÷ 3 = 3 y sobra 1)
Diferencia clave:
ROUND = redondea.
TRUNC = solo corta.
Resumen:
Función ¿Qué hace? Ejemplo Resultado
LENGT Cuenta caracteres LENGTH('EMILIO 6
H ')
LPAD Rellena a la LPAD('123',5,' 00123
izquierda 0')
RPAD Rellena a la derecha RPAD('123',5,' 12300
0')
SUBST Extrae parte del SUBSTR('EMILIO MIL
R texto ',2,3)
CONC Une textos CONCAT('EMI',' EMILIO
AT LIO')
INSTR Busca posición de INSTR('EMILIO' 4
texto ,'LI')
TRIM Quita espacios TRIM(' EMILIO EMILIO
extremos ')
REPLA Reemplaza texto REPLACE('EMILI EMIXIO
CE O','L','X')
UPPER Convierte a UPPER('emilio' EMILIO
mayúscula )
LOWE Convierte a LOWER('EMILIO' emilio
R minúscula )
INITC Primera letra en INITCAP('emili Emilio
AP mayúscula o munoz') Munoz
FUNCIONES NUMÉRICAS:
Funci ¿Qué hace? Ejemplo Resulta
ón do
ROU Redondea ROUND(45 45.68
ND número .678,2)
TRUN Corta sin TRUNC(45 45.67
C redondear .678,2)
MOD Devuelve el MOD(10,3 1
residuo )
1. Funciones de Fecha (Aritmética del
Tiempo)
Según la tabla, estas funciones operan sobre el tipo de
dato DATE. Es vital recordar que casi todas devuelven una
fecha, con una excepción clave:
MONTHS_BETWEEN: Es la única que devuelve un
número (la diferencia de meses entre dos fechas).
ADD_MONTHS: Suma meses a una fecha específica.
NEXT_DAY: Te da la fecha del siguiente día de la
semana que indiques (ej. "Lunes").(Hoy es
Domingo).
LAST_DAY: Devuelve el último día del mes de la fecha
proporcionada.
ROUND / TRUNC: Sirven para redondear o "cortar" la
precisión de una fecha (por ejemplo, para eliminar
las horas y quedarse solo con el día).
2. Funciones de Conversión
Para que un negocio funcione, los datos deben ser
presentados correctamente. Los objetivos de esta lección
se centran en:
Conversión Implícita: Ocurre cuando SQL cambia el
tipo de dato automáticamente (menos
recomendado).
Conversión Explícita: El programador usa funciones
para asegurar que el dato sea del tipo correcto.
TO_CHAR: De fecha/número a texto.
TO_NUMBER: De texto a número.
TO_DATE: De texto a formato de fecha.
3. Ejemplo Práctico Combinado
Si quisieras saber cuántos meses lleva trabajando
un empleado y mostrarlo en un formato
profesional, usarías ambos conceptos:
Consulta SQL más abajo
SQL
SELECT
last_name,
-- Usamos MONTHS_BETWEEN (Función de
fecha)
-- Y TRUNC para no ver decimales de
meses
TRUNC(MONTHS_BETWEEN(SYSDATE,
hire_date)) AS meses_antiguedad,
-- Usamos TO_CHAR (Conversión) para un
reporte legible
TO_CHAR(hire_date, 'Month DD, YYYY') AS
fecha_formateada
FROM employees;