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

¿Qué es la subcadena de PostgreSQL?

La función de subcadena de PostgreSQL le ayuda a extraer y devolver parte de una cadena. En lugar de devolver toda la cadena, sólo devuelve una parte.

Sintaxis

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

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

parámetros

Nombre Descripción
cadena La cadena de origen cuyo tipo de datos es varchar, char, string, etc.
posición inicial Es un parámetro opcional. Indica el lugar donde comenzará la extracción del hilo. Si omite este parámetro, la extracción comenzará desde la posición 1, que es el primer carácter de la cadena.
de largo Es un parámetro opcional. Indica el número de caracteres que se extraerán de la cadena. Si omite este parámetro, la función extraerá desde posición_inicial hasta el final de la cadena.

Ejemplos

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

SELECT substring('Guru99' for 4);

El comando devolverá el siguientewing:

Subcadena de PostgreSQL

No especificamos la posición inicial, por lo que la extracción de la subcadena comienza en la posición 1. Se extrajeron 4 caracteres para devolver lo anterior.

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

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

El comando devolverá el siguientewing:

Subcadena de PostgreSQL

Especificamos que la extracción de la subcadena debe comenzar desde la posición 1 y se deben extraer 4 caracteres.

Extraigamos 99 de la cadena Guru99:

SELECT substring('Guru99' from 5);

El comando devolverá el siguientewing:

Subcadena de PostgreSQL

Especificamos la posición inicial como 5. Dado que no se especificó el número de caracteres que se extraerían, la extracción se realizó hasta el final de la cadena.

Aquí hay otro ejemplo:

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

El comando devolverá el siguientewing:

Subcadena de PostgreSQL

Hemos iniciado la extracción en la posición 5 y se han extraído 2 caracteres.

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

Subcadena de PostgreSQL

Queremos tener una idea aproximada del nombre de cada libro. Sin embargo, solo podemos extraer 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á el siguientewing:

Subcadena de PostgreSQL

Ahora tenemos una idea aproximada del nombre de cada libro.

Coincidencia de subcadenas con expresiones regulares SQL

En PostgreSQL, podemos extraer una subcadena que coincida con una expresión regular POSIX especificada. En este caso, la función de subcadena se usa con lo siguientewing 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 fuente cuya tipo de datos es varchar, char, cadena, etc.

Matching_pattern es el patrón que se utilizará para buscar en la cadena.

Ejemplos

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

El comando devolverá el siguientewing:

Coincidencia de subcadenas con expresiones regulares SQL

Nuestra cadena de entrada es su edad es 22. En el patrón, estamos buscando un patrón numérico en nuestra cadena cuando lo encontramos, la función de subcadena solo debe extraer dos caracteres.

Cómo hacer coincidir subcadenas usando pgAdmin

Ahora veamos cómo se realizan las acciones usando pgAdmin.

Las consultas anteriores en las que no necesitamos una base de datos se pueden ejecutar directamente desde la ventana del editor de consultas. solo haz lo siguientewing:

Paso 1) Inicie sesión en su cuenta.
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 consulta.
Escribe lo siguientewing consulta en la ventana del editor.

SELECT substring('Guru99' for 4);

Paso 4) Ejecutar la solicitud
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 el siguientewing:

Coincidencia de subcadenas usando pgAdmin

Ejemplo 2:

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

Debería devolver el siguientewing:

Coincidencia de subcadenas usando pgAdmin

Aquí está el siguiente ejemplo:

SELECT substring('Guru99' from 5);

Debería devolver el siguientewing:

Coincidencia de subcadenas usando pgAdmin

Ejemplo 3:

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

Debería devolver el siguientewing:

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)

  1. Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostración.

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 el siguientewing:

Subcadena de PostgreSQL

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

Coincidencia de subcadenas con expresiones regulares SQL

Para lograr lo mismo en pgAdmin, haga lo siguientewing:

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) Escribe lo siguientewing 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 el siguientewing:

Coincidencia de subcadenas con expresiones regulares SQL

Resumen

  • La función Substring de PostgreSQL ayuda a extraer y devolver solo una parte de una cadena.
  • El primer carácter de la cadena está en la posición 1.
  • Si no se especifica la cantidad de caracteres que se extraerán de la cadena, la función extraerá caracteres desde la posición inicial especificada hasta el final de la cadena.
  • Si se especifica la cantidad de caracteres que se extraerán, solo se extraerá esa cantidad de caracteres.

Descargue la Base de Datos utilizada en este Tutorial