Funciones de Cadenas, Fechas y Condicionales en SQL: Guía Práctica con Ejemplos
Funciones de manipulación de cadenas en SQL
A continuación se presentan las principales funciones para el tratamiento de cadenas de texto, con ejemplos y resultados.
Extracción de subcadenas
- substring(cadena, posicion, longitud): Ejemplo:
select substring('Buenas tardes', 3, 5);devuelve "enas". - mid(cadena, posicion, longitud): Ejemplo:
select mid('Buenas tardes' from 3 for 5);devuelve "enas". - substring(cadena, posicion): Ejemplo:
select substring('Margarita', 4);devuelve "garita". - substring(cadena from posicion): Ejemplo:
select substring('Margarita' from 4);devuelve "garita".
Eliminación de espacios
ltrim y rtrim(cadena):
select ltrim(' Hola ');devuelve "Hola ".select rtrim(' Hola ');devuelve " Hola".
Reemplazo de subcadenas
replace(cadena, cadenareemplazo, cadenareemplazar): devuelve la cadena con todas las ocurrencias de la subcadena a reemplazar por la subcadena de reemplazo.
Ejemplo: select replace('xxx.mysql.com', 'x', 'w'); devuelve www.mysql.com.
Repetición de cadenas
repeat(cadena, cantidad): devuelve la cadena repetida la cantidad de veces especificada. Si cantidad es menor o igual a cero, devuelve una cadena vacía.
Ejemplo: select repeat('hola', 3); devuelve "holaholahola".
Inversión de cadenas
reverse(cadena): devuelve la cadena invirtiendo el orden de los caracteres.
Ejemplo: select reverse('Hola'); devuelve "aloH".
Inserción de subcadenas
insert(cadena, posicion, longitud, nuevacadena): Ejemplo: select insert('buenas tardes', 2, 6, 'xx'); devuelve "bxxtardes".
Conversión a minúsculas
lcase(cadena) y lower(cadena)
select lower('HOLA ESTUDIAnte');devuelve "hola estudiante".select lcase('HOLA ESTUDIAnte');devuelve "hola estudiante".
Conversión a mayúsculas
ucase(cadena) y upper(cadena) devuelven la cadena con todos los caracteres en mayúsculas.
select upper('HOLA ESTUDIAnte');devuelve "HOLA ESTUDIANTE".select ucase('HOLA ESTUDIAnte');devuelve "HOLA ESTUDIANTE".
Funciones de fechas
Estas funciones permiten trabajar con fechas del sistema y realizar operaciones aritméticas sobre ellas.
Fecha y hora del sistema
- sysdate(): devuelve la fecha del sistema.
- current_date: devuelve la fecha de hoy con formato "YYYY-MM-DD" o "YYYYMMDD".
- current_time: devuelve la hora actual con formato "HH:MM:SS" o "HHMMSS".
Suma y resta de fechas
- adddate(fecha, interval expresion): Ejemplo:
adddate('2006-10-10', interval 25 day)devuelve "2006-11-04". - adddate(fecha, dias): Ejemplo:
adddate('2006-10-10', 25)devuelve "2006-11-04". - date_add(fecha, interval expresion tipo) y date_sub(fecha, interval expresion tipo): Ejemplo:
date_add('2006-08-10', interval 1 month)devuelve "2006-09-10".
Diferencia y nombre de días
- datediff(fecha1, fecha2): devuelve la cantidad de días entre fecha1 y fecha2.
- dayname(fecha): devuelve el nombre del día de la semana. Ejemplo:
dayname('2006-08-10')devuelve "thursday".
Estructuras condicionales: IF y CASE
Función IF
Permite evaluar una condición y devolver un valor según sea verdadera o falsa.
select editorial, if(count(*) > 4, '5 o más', 'menos de 5') as cantidad from libros group by editorial order by cantidad;
Expresión CASE (valor simple)
select editorial, case count(*) when 1 then 1 when 2 then 2 when 3 then 3 else 'Más de 3' end as 'cantidad' from libros group by editorial;
Expresión CASE aplicada a una tabla de películas
El siguiente ejemplo asigna una etiqueta de puntuación según el valor de movieRating:
select m.movieTitle as title, m.movieRating as rating,
case m.movieRating
when 4 then "4 points"
when 4.5 then "4.5 points"
else "5 points" end as point
from movie as m
order by m.movieRating desc;Nota: en el documento original este mismo bloque de consulta aparecía repetido tres veces; se ha conservado una única versión para evitar redundancia, sin eliminar contenido útil.