logo del blog

Devproplus

Extraer cadena de caracteres en PostgreSQL

3 min de lectura

En determinadas ocasiones, cuando trabajamos con bases de datos necesitamos obtener solo una porción de una cadena de caracteres(string o palabra). En PostgreSQL existen varias formas o maneras de extraer una subcadena de caracteres de una cadena de caracteres, pero en este artículo estaré hablando de la función "SUBSTRING". Podrán ver ejemplos de las diferentes formas que se puede usar "SUBSTRING".

Como su nombre lo indica, la función "SUBSTRING" extrae una subcadena de caracteres de otra cadena. Para poder hacer esto "SUBSTRING" recibe hasta 3 parámetros. De estos 3 parámetros 1 es obligatorio que es la cadena de la cual se va a extraer la subcadena y de los otros 2, al menos 1 se debe proporcionar. Veamos la sintaxis.

Sintaxis:

SUBSTRING(string, FROM, FOR)

Parámetros:

string: Es obligatorio y es la cadena de caracteres de la cual se quiere o se va a extraer la subcadena.

FROM: Es la posición inicial desde donde se va a empezar a extraer la subcadena. Este parámetro es un valor numérico.

FOR: Es la cantidad de caracteres que se van a extraer. Si se omite este parámetro, se extrae una subcadena desde la posición que indicamos en el parámetro inicio hasta el final de la cadena.

Para la demostración usaré una tabla llamada 'blog', la cual tiene 5 columnas y dos registros. El uso de "SUBSTRING" en los ejemplos se aplicará en los datos de la columna 'name' y en el registro con el id = 1.

Función SUBSTRING con 3 parámetros

En la primera captura se puede ver que la sentencia ejecutada es

SELECT SUBSTRING(name FROM 2 FOR 4) FROM blog WHERE id = 1;

Como se puede observar a "SUBSTRING" se le está pasando los 3 parámetros, por lo que en este caso buscará la cadena que está en la columna name y extraerá la subcadena empezando por el caracater 2 y contando 4 caracteres.

Ejemplo de la función SUBSTRING con dos parámetros

Función SUBSTRING con 2 parámetros (FROM)

En este caso se está pasando el parámetro obligatorio('name') y el parámetro FROM. Se le pide que comience a extraer desde el caracter 4 y al no contar con el parámetro FOR, extrae la subcadena hasta el final.

SELECT SUBSTRING(name from 4) FROM blog WHERE id = 1;

Observen el resultado devuelto después de la ejecución.

Otro ejemplo de la función SUBSTRING con dos parámetros

Función SUBSTRING con 2 parámetros (FOR)

La última forma de uso que veremos en este artículo es con el uso de FOR, sin FROM y digo última porque existe una forma más de usarlo, pero eso lo dejo para el final del artículo. Como se puede ver en la imagen, en este caso se está usando el parámetro obligatorio 'name' y FOR. El comportamiento será que extraerá la cantidad de caracteres que hayamos indicado con FOR. Como no tiene un punto de partida por la ausencia de FROM, empezará a extraer desde el primer caracter.

SELECT SUBSTRING(name FOR 5) FROM blog WHERE id = 1;

Observen el resultado en la imagen.

Ejemplo de la función SUBSTRING con tres parámetros

Conclusión

Como se pudo observar la función "SUBSTRING" es un método sencillo para hacer una extracción de caracteres en una cadena. Como antes mencioné, otra forma de usar "SUBSTRING" es con expresiones regulares. Dejo el link a la documentación oficial de la versión actual en el momento de escribir este artículo por si quieren investigar un poco más.