Trabajar con bases de datos implica mucho más que almacenar información. La forma en que los datos se presentan marca la diferencia entre un reporte útil y uno confuso. Las funciones de texto en PostgreSQL permiten transformar cadenas para que luzcan exactamente como las necesitamos: en mayúsculas, sin espacios innecesarios, recortadas o combinadas con otros valores.
¿Cómo transformar texto con UPPER, LOWER y TRIM?
Estas tres funciones son el punto de partida cuando se trabaja con formato de cadenas de texto en SQL [01:10].
- UPPER convierte cualquier cadena a mayúsculas. Si tenemos "hola mundo", el resultado será "HOLA MUNDO".
- LOWER hace lo contrario: transforma todo a minúsculas, sin importar cómo esté escrito originalmente.
- TRIM elimina los espacios en blanco que existen antes y después de una cadena de texto.
Además, existen dos variantes de TRIM muy prácticas [01:50]:
- LTRIM borra únicamente los espacios a la izquierda de la cadena.
- RTRIM elimina solo los espacios a la derecha.
Estas funciones son fundamentales cuando los datos provienen de formularios o importaciones donde los espacios extra se cuelan con frecuencia.
¿Para qué sirve la función LENGTH?
Conocer la longitud exacta de una cadena es más útil de lo que parece. La función LENGTH devuelve la cantidad de caracteres que contiene un texto [02:30]. Por ejemplo, la palabra "nombre" tiene seis caracteres, mientras que la frase "nombre de mi clase" tiene dieciocho.
¿Por qué importa esto? Porque muchas veces necesitamos recortar elementos para un informe o validar que un dato cumpla con cierto tamaño antes de almacenarlo.
¿Cómo unir campos de texto con CONCAT y el operador doble pipe?
La función CONCAT y el operador || (doble pipe) permiten juntar varias cadenas de texto en una sola [03:15]. Este operador se representa con dos barras verticales y actúa como pegamento entre valores.
Un ejemplo práctico: si tenemos una tabla de personas con los campos nombre y apellido, podemos crear un campo virtual llamado "nombre completo" con esta consulta:
sql SELECT nombre || ' ' || apellido AS nombre_completo FROM personas;
El resultado sería algo como "Valter Calcaño", "María González" o "Juan Pérez" [05:00]. Nótese que entre el nombre y el apellido se agrega un espacio usando comillas simples con un espacio dentro: ' '. Sin ese detalle, los valores quedarían pegados.
¿Cómo recortar cadenas con SUBSTRING, LEFT y RIGHT?
Cuando necesitamos extraer solo una porción de un texto, la función SUBSTRING es la herramienta indicada [05:50]. Recibe tres parámetros: la cadena de texto, la posición inicial y la cantidad de caracteres que queremos obtener.
sql SELECT SUBSTRING('PostgreSQL', 2, 5);
Esto devuelve ostgr, porque comienza desde la posición dos (la letra "o") y toma cinco caracteres. Si cambiamos los valores a posición uno con siete caracteres, obtenemos Postgre.
Dos funciones complementarias simplifican el recorte [06:50]:
- LEFT extrae los primeros caracteres desde la izquierda.
LEFT('PostgreSQL', 4) devuelve Post.
- RIGHT toma los últimos caracteres desde la derecha.
RIGHT('PostgreSQL', 3) devuelve SQL.
Estas funciones son especialmente útiles para generar reportes donde solo se necesita una parte de un dato extenso.
¿Cómo reemplazar caracteres con REPLACE?
La función REPLACE sustituye una porción de texto por otra dentro de una cadena [07:40]. Recibe tres argumentos: la cadena original, el texto que se busca y el texto de reemplazo.
sql SELECT REPLACE('walter@widata.cl', '@', ' arroba ') AS email_seguro;
El resultado sería walter arroba widata.cl. Se puede reemplazar por cualquier valor, como la palabra "dentro de", que es la traducción literal del símbolo arroba.
Todas estas funciones pueden combinarse entre sí, anidando una dentro de otra, lo que abre posibilidades enormes cuando los datos contienen mucho texto y necesitan presentarse en un formato específico.
¿Ya has probado combinar varias de estas funciones en una sola consulta? Comparte en los comentarios cuál te resulta más útil en tu trabajo diario.