Ir al contenido principal
Documentos
Funciones de cadenaDesencadenaBases de datosFunciones JSONFunciones matemáticasFunciones de fechaÍndicesSintaxis básicaGestión de Tablas y Esquemas

PostgreSQL SUBSTRING

La función PostgreSQL SUBSTRING se utiliza para extraer una parte de una cadena basándose en índices especificados. Esta función es esencial para realizar tareas de manipulación de cadenas y análisis sintáctico de datos dentro de una base de datos.

Utilización

La función SUBSTRING se utiliza cuando necesitas extraer partes de una cadena, como recuperar una parte de un campo de texto o analizar determinados formatos de datos. Suele utilizarse en tareas de transformación y preparación de datos.

SUBSTRING(string FROM start [FOR length])

En esta sintaxis, string es la cadena de origen, start indica la posición inicial y length es el número de caracteres a extraer. Si se omite length, la subcadena se extiende hasta el final de la cadena.

Ejemplos

1. Extracción básica de subcadenas

SELECT SUBSTRING('PostgreSQL Tutorial' FROM 1 FOR 10);

Este ejemplo extrae los 10 primeros caracteres de la cadena, dando como resultado la salida: 'PostgreSQL'.

2. Subcadena sin longitud especificada

SELECT SUBSTRING('Database Management' FROM 10);

Aquí, la subcadena comienza a partir del 10º carácter y continúa hasta el final, lo que da como resultado: 'Management'.

3. Subcadena con concordancia de patrones

SELECT SUBSTRING('abc123def456' FROM '[0-9]+');

Este ejemplo utiliza una expresión regular para extraer la primera secuencia de dígitos de la cadena, lo que da como resultado: '123'.

4. Caso Edge: El inicio supera la longitud de la cadena

SELECT SUBSTRING('Short' FROM 10 FOR 5);

Cuando la posición start supera la longitud de la cadena, el resultado es una cadena vacía: ''.

5. Caso Edge: Índices negativos

SELECT SUBSTRING('Negative Test' FROM -5);

Si utilizas índices negativos, se producirá un error, ya que start debe ser un número entero positivo.

Consejos y buenas prácticas

  • Ten en cuenta los índices. PostgreSQL utiliza la indexación basada en 1, lo que significa que el recuento empieza en 1, no en 0.
  • Utiliza expresiones regulares. Utiliza patrones regex para tareas más complejas de extracción de cadenas que coincidan con patrones específicos.
  • Combínalo con otras funciones. Utiliza SUBSTRING junto con otras funciones de cadena como TRIM o LENGTH para una manipulación de cadenas más robusta.
  • Evita la extracción innecesaria. Asegúrate de que los parámetros start y length son precisos para evitar errores o resultados inesperados.
  • Consideraciones sobre el rendimiento. Ten cuidado al utilizar SUBSTRING en consultas que procesen grandes conjuntos de datos, ya que puede afectar al rendimiento.
  • Funciones relacionadas. Considera la posibilidad de utilizar LEFT o RIGHT cuando necesites extraer un número fijo de caracteres del inicio o del final de una cadena, respectivamente.