PostgreSQL Función SUBSTRING() con ejemplo de expresiones regulares

⚔ Resumen inteligente

PostgreSQL SUBCADENA extracts y devuelve parte de una cadena, utilizando una posición inicial y una longitud opcionales, y también compara el texto con una expresión regular POSIX para extraer patrones como números o códigos.

  • šŸ“‹ Sintaxis: substring( cadena [desde inicio] [para longitud] ) devuelve una porción de la cadena de origen.
  • 1ļøāƒ£ Posiciones: Las posiciones de los caracteres comienzan en 1, y si se omite la longitud, se lee hasta el final de la cadena.
  • šŸ”Ž Expresión regular: SUBSTRING(cadena FROM patrón) ej.traces el primer texto que coincide con una expresión regular POSIX.
  • 🧮 Grouping: Un grupo entre parĆ©ntesis en el patrón devuelve solo la parte capturada de la coincidencia.
  • šŸ–„ļø pgAdmin: Todas las consultas de subcadenas se ejecutan de la misma manera dentro del editor de consultas de pgAdmin.
  • šŸ¤– Ayuda de IA: Los asistentes de IA generan y explican patrones de expresiones regulares para subcadenas precisas.tracción.

PostgreSQL Función SUBSTRING con expresiones regulares

¿Qué es PostgreSQL ¿Subcadena?

El PostgreSQL La función substring te ayuda atracy devuelve parte de una cadena. En lugar de devolver la cadena completa, solo devuelve una parte, lo cual es útil para recortar códigos y leer campos de ancho fijo.

Sintaxis

El PostgreSQL La función de subcadena toma la siguiente sintaxis:

substring( string [from starting_position] [for length] )

ParƔmetros

Los siguientes parÔmetros se utilizan con la función substring:

cadena La cadena de origen cuyo tipo de datos es varchar, char, string, etc.
posición inicial Un parÔmetro opcional. Indica el lugar donde se encuentra el extracLa cadena comenzarÔ. Si omite este parÔmetro, la expresióntracLa secuencia comienza desde la posición 1, que es el primer carÔcter de la cadena.
de largo Un parÔmetro opcional. Indica el número de caracteres que se mostrarÔn.tracted de la cadena. Si omite este parÔmetro, la función extracts desde la posición inicial hasta el final de la cadena.

Ejemplos

En este ejemplo, queremos extract los primeros 4 caracteres de la palabra Guru99:

SELECT substring('Guru99' for 4);

El comando devolverĆ” lo siguiente:

PostgreSQL Subcadena

No especificamos la posición inicial, por lo que el extracLa subcadena comenzó en la posición 1. Se extrajeron cuatro caracteres.tracted para devolver el resultado anterior.

El siguiente ejemplo muestra cómo especificar la posición inicial:

SELECT substring('Guru99' from 1 for 4);

El comando devolverĆ” lo siguiente:

PostgreSQL Subcadena

Especificamos que el extracLa subcadena debe comenzar desde la posición 1 y deben ser 4 caracteres.tracted

Vamos a extract 99 de la cadena Guru99:

SELECT substring('Guru99' from 5);

El comando devolverĆ” lo siguiente:

PostgreSQL Subcadena

Especificamos la posición inicial como 5. Dado que el número de caracteres a ser extracNo se especificó ted, el extracLa ción corrió hasta el final de la cadena.

AquĆ­ hay otro ejemplo:

SELECT substring('Guru99' from 5 for 2);

El comando devolverĆ” lo siguiente:

PostgreSQL Subcadena

Empezamos extracción en la posición 5, y 2 caracteres fueron extracted

Considere la tabla de libros que se proporciona a continuación:

PostgreSQL Tabla de libros de subcadenas

Queremos hacernos una idea aproximada del nombre de cada libro. Podemos extract solo los primeros 15 caracteres de la columna de nombre de la tabla:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

El comando devolverĆ” lo siguiente:

PostgreSQL Resultado de la subcadena

Ahora tenemos una idea aproximada del nombre de cada libro.

Coincidencia de subcadenas con expresiones regulares SQL

In PostgreSQL, puedes extracuna subcadena que coincide con una expresión regular POSIX específica. En este caso, la función substring utiliza la siguiente sintaxis:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

Aquí hay una explicación de los parÔmetros anteriores. La cadena es la cadena de origen, cuyo tipo de datos es varchar, char, string, etc. El matching_pattern es el patrón que se utiliza para buscar en la cadena.

Ejemplos

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

El comando devolverĆ” lo siguiente:

Coincidencia de subcadenas con expresiones regulares SQL

Nuestra cadena de entrada es Tu edad es 22. En el patrón, buscamos un patrón numérico; cuando se encuentra, la función de subcadena extracSolo tiene dos caracteres.

Cómo buscar subcadenas usando pgAdmin

Ahora veamos cómo se realizan estas acciones usando pgAdmin. Las consultas que no necesitan una base de datos se pueden ejecutar directamente desde la ventana del editor de consultas. Simplemente haga lo siguiente:

Paso 1) Inicie sesión en su cuenta pgAdmin.

Paso 2) En pgAdmin, haga clic en el icono de la herramienta de consulta.

Coincidencia de subcadenas usando pgAdmin

Se abrirĆ” la ventana del editor de consultas.

Paso 3) Escriba la siguiente consulta en la ventana del editor.

SELECT substring('Guru99' for 4);

Paso 4) Haga clic en el icono Ejecutar para ejecutar la consulta.

Coincidencia de subcadenas usando pgAdmin

Paso 5) La ejecución de la consulta ha finalizado. Debería devolver lo siguiente:

Coincidencia de subcadenas usando pgAdmin

Ejemplo 2:

SELECT substring('Guru99' from 1 for 4);

DeberĆ­a devolver lo siguiente:

Coincidencia de subcadenas usando pgAdmin

AquĆ­ estĆ” el siguiente ejemplo:

SELECT substring('Guru99' from 5);

DeberĆ­a devolver lo siguiente:

Coincidencia de subcadenas usando pgAdmin

Ejemplo 3:

SELECT substring('Guru99' from 5 for 2);

DeberĆ­a devolver lo siguiente:

Coincidencia de subcadenas usando pgAdmin

Ahora, ejecutemos el ejemplo usando la tabla Libro de la base de datos Demo:

Paso 1) Inicie sesión en su cuenta pgAdmin.

Paso 2) En la barra de navegación de la izquierda, haga clic en Bases de datos y, a continuación, en Demo.

Coincidencia de subcadenas usando pgAdmin

Paso 3) Escriba la consulta en el editor de consultas:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Paso 4) Haga clic en el botón Ejecutar.

Coincidencia de subcadenas usando pgAdmin

DeberĆ­a devolver lo siguiente:

PostgreSQL Resultado de la subcadena

Ahora tenemos una idea bƔsica del nombre de cada libro.

Coincidencia de subcadenas con expresiones regulares SQL

Para realizar lo mismo en pgAdmin, haga lo siguiente:

Paso 1) Inicie sesión en su cuenta pgAdmin.

Paso 2) Haga clic en el icono de la herramienta de consulta.

Coincidencia de subcadenas con expresiones regulares SQL

Se abrirĆ” la ventana del editor de consultas.

Paso 3) Escriba la siguiente consulta en la ventana del editor.

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Paso 4) Haga clic en el icono Ejecutar para ejecutar la consulta.

Coincidencia de subcadenas con expresiones regulares SQL

DeberĆ­a devolver lo siguiente:

Coincidencia de subcadenas con expresiones regulares SQL

Descargue la Base de Datos utilizada en este Tutorial

Preguntas Frecuentes

SUBSTR es un alias mÔs corto de SUBSTRING y devuelve una parte de una cadena. SUBSTRING también admite las palabras clave FROM y FOR estÔndar de SQL, ademÔs de expresiones regulares POSIX, mientras que SUBSTR solo acepta argumentos de posición y longitud separados por comas.

PostgreSQL La función SUBSTRING se basa en el índice 1, por lo que el primer carÔcter se sitúa en la posición 1, no en la 0. Si se le pasa una posición inicial de 1, devuelve la cadena desde su primer carÔcter en adelante.

Cuando el patrón POSIX no coincide con nada, SUBSTRING devuelve NULL en lugar de una cadena vacía. Comprobar el resultado con IS NULL permite gestionar las filas donde no se encuentra el patrón esperado.

Utilice una expresión regular que capture lo que sigue al carÔcter. Por ejemplo, SUBSTRING(email FROM '@(.*)') devuelve todo lo que aparece después del signo @, lo que le proporciona la parte del dominio de cada dirección de correo electrónico.

Utilice SUBSTRING cuando necesite el primer texto coincidente como un valor simple. Elija regexp_matches() cuando desee que se devuelvan todas las coincidencias o varios grupos de captura como una matriz, ya que SUBSTRING solo devuelve la primera coincidencia.

Los asistentes de IA como GitHub Copilot convierten una descripción en inglés simple en un patrón POSIX, explican a qué coincide cada token y sugieren cadenas de prueba, lo que reduce el método de prueba y error al construir subcadenas.tracconsultas de ción.

Sƭ. Describe la parte del texto que deseas y el asistente de IA generarƔ una llamada a SUBSTRING con las posiciones o expresiones regulares correctas, que podrƔs ejecutar y perfeccionar dentro de pgAdmin.

SĆ­, la coincidencia de SUBSTRING de POSIX distingue entre mayĆŗsculas y minĆŗsculas por defecto. Para que coincida independientemente de las mayĆŗsculas y minĆŗsculas, convierta ambas entradas a minĆŗsculas, por ejemplo, SUBSTRING(lower(name) FROM lower(pattern)), de modo que las letras mayĆŗsculas y minĆŗsculas se traten igual.

Resumir este post con: