Función SUBSTRING en PostgreSQL

La función SUBSTRING en PostgreSQL es una herramienta esencial para trabajar con cadenas de texto, ya que te permite extraer una parte específica de una cadena. Esta función es especialmente útil cuando necesitas obtener un segmento de texto determinado, indicando desde qué posición debe empezar y cuántos caracteres deseas extraer. Gracias a su flexibilidad, puedes aplicarla en una amplia variedad de escenarios, desde el análisis de datos hasta la limpieza de información.

Como parte de las funciones de cadena en PostgreSQL, SUBSTRING destaca por su capacidad para adaptarse a diferentes formatos y estructuras de texto. Puedes usarla para extraer códigos, analizar información almacenada en columnas de texto o simplemente manipular cadenas de forma eficiente.

En este artículo, primero te mostraré la sintaxis básica de SUBSTRING, y luego exploraremos ejemplos prácticos para que veas cómo aplicarla en distintos contextos y resolver problemas comunes en bases de datos.

Para más información, puedes consultar la documentación oficial de la función SUBSTRING en PostgreSQL.

Sintaxis

La sintaxis para utilizar la función SUBSTRING en PostgreSQL es la siguiente:

SUBSTRING ( cadena ,posicion_inicio , longitud )
  • SUBSTRING: es el nombre de la función.
  • cadena: cadena de la que se quiere extraer una parte.
  • posicion_inicio: posición donde debe empezar a extraer (empieza desde la posición 1).
  • longitud: cantidad de caracteres que debe extraer desde que empieza.

Ejemplo

Extraer parte de una cadena

En el siguiente ejemplo puedes observar cómo extraemos el apellido de la cadena ‘Miguel Troyano’ indicando que empiece a extraer desde la posición 8. Si no se le indica dónde debe acabar (la longitud) extraerá hasta el final de la cadena:

SELECT 	SUBSTRING ('Miguel Troyano' , 8),
		SUBSTRING ('Miguel Troyano' , 8,7);
Función SUBSTRING en PostgreSQL

Extraer parte de una cadena de un campo

En el siguiente ejemplo extraemos la inicial del campo nombre de la tabla empleados:

SELECT 	nombre, 
		SUBSTRING (nombre , 1, 1) INICIAL
FROM empleados;

Extraer parte de una cadena con una expresión regular

En el siguiente ejemplo extraemos de la cadena ‘Vivo en el número 100’ los números gracias a la expresión regular escrita:

SELECT SUBSTRING ('Vivo en el número 100','([0-9]{1,3})') as Número;
  • ‘Vivo en el número 100’: cadena de donde se van a extraer los números.
  • [0-9]: le indicamos que debe buscar del cero al nuevo.
  • {1,3}: como mínimo debe contener una coincidencia y máximo 3. Si el máximo fuese menor al resultado lo truncaría.

2 comentarios en “Función SUBSTRING en PostgreSQL

  1. Hola buenas tardes
    Excelente tutoría.
    Pero tengo un inconveniente que no puedo resolver, respecto de la función Replace().
    Tengo el siguiente String=’0960′.
    Y necesito solamente reemplazar el primer ‘0’ por un ‘*’ entonces hago lo siguiente:
    select replace(‘0960’, substring(‘0960′,1,1),’*’) as asterisco;
    Pero el resultado es ‘*96*’ y lo que deseo es ‘*960’.
    No puedo lograr que quede como deseo.
    Me podría ayudar con este inconveniente, qué puedo estar haciendo mal.
    Un codial saludo

    1. Hola, si no tienes que comprobar que el primer carácter sea un cero puedes ejecutar esta consulta: SELECT concat(‘*’, substring(‘0960’ FROM 2)) AS asterisco;

Escribir un comentario