PostgreSQL SUBSTRING() Funktion med regulært udtryk eksempel

Hvad er PostgreSQL Understreng?

PostgreSQL substring-funktion hjælper dig med at udtrække og returnere en del af en streng. I stedet for at returnere hele strengen, returnerer den kun en del af den.

Syntaks

PostgreSQL substring funktion tager følgende syntaks:

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

parametre

Navn Description
streng Kildestrengen, hvis datatype er varchar, char, string osv.
startposition Det er en valgfri parameter. Det angiver det sted, hvor udtrækningen af ​​strengen vil begynde. Hvis du udelader denne parameter, starter udtrækningen fra position 1, som er det første tegn i strengen.
længde Det er en valgfri parameter. Det angiver antallet af tegn, der skal udtrækkes fra strengen. Hvis du udelader denne parameter, vil funktionen trække fra start_position til slutningen af ​​strengen.

Eksempler

I dette eksempel ønsker vi at udtrække de første 4 tegn fra ordet Guru99:

SELECT substring('Guru99' for 4);

Kommandoen returnerer følgende:

PostgreSQL substring

Vi specificerede ikke startpositionen, så udtrækningen af ​​understrengen starter ved position 1. 4 tegn blev udtrukket for at returnere ovenstående.

Følgende eksempel viser, hvordan du angiver startpositionen:

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

Kommandoen returnerer følgende:

PostgreSQL substring

Vi specificerede, at udtrækningen af ​​understrengen skulle begynde fra position 1, og 4 tegn skulle udtrækkes.

Lad os udtrække 99 fra strengen Guru99:

SELECT substring('Guru99' from 5);

Kommandoen returnerer følgende:

PostgreSQL substring

Vi specificerede startpositionen som 5. Da antallet af tegn, der skulle udtrækkes, ikke var angivet, løb udtrækningen til slutningen af ​​strengen.

Her er et andet eksempel:

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

Kommandoen returnerer følgende:

PostgreSQL substring

Vi har startet udtrækning ved position 5, og 2 tegn er blevet udtrukket.

Overvej bogtabellen nedenfor:

PostgreSQL substring

Vi ønsker at få en ide om navnet på hver bog. Vi kan dog kun udtrække de første 15 tegn fra navnekolonnen i tabellen:

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

Kommandoen returnerer følgende:

PostgreSQL substring

Vi har nu en grov idé om navnet på hver bog.

Matchende understrenge med SQL-regulært udtryk

In PostgreSQL, kan vi udtrække en understreng, der matcher et angivet regulært POSIX-udtryk. I dette tilfælde bruges understrengsfunktionen med følgende syntaks:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

Her er en forklaring på ovenstående parametre:

Strengen er kildestrengen, hvis datatype er varchar, char, string osv.

Matching_pattern er det mønster, der skal bruges til at søge i strengen.

Eksempler

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

Kommandoen returnerer følgende:

Matchende understrenge med SQL-regulært udtryk

Vores inputstreng er, at din alder er 22. I mønsteret søger vi efter et numerisk mønster i vores streng, når dette er fundet, substring-funktionen skal kun udtrække to tegn.

Sådan matcher du understrenge ved hjælp af pgAdmin

Lad os nu se, hvordan handlingerne udføres ved hjælp af pgAdmin.

Ovenstående forespørgsler, hvor vi ikke har brug for en database, kan udføres direkte fra forespørgselsredigeringsvinduet. Bare gør følgende:

Trin 1) Log ind på din konto.
Log ind på din pgAdmin-konto.

Trin 2) På pgAdmin,
Klik på ikonet Forespørgselsværktøj.

Matchende understrenge ved hjælp af pgAdmin

Forespørgselsredigeringsvinduet åbnes.

Trin 3) Indtast forespørgsel.
Indtast følgende forespørgsel i redigeringsvinduet.

SELECT substring('Guru99' for 4);

Trin 4) Udfør forespørgsel
Klik på ikonet Udfør for at udføre forespørgslen.

Matchende understrenge ved hjælp af pgAdmin

Trin 5) Forespørgselsudførelse er udført.
Det skal returnere følgende:

Matchende understrenge ved hjælp af pgAdmin

Eksempel 2:

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

Det skal returnere følgende:

Matchende understrenge ved hjælp af pgAdmin

Her er det næste eksempel:

SELECT substring('Guru99' from 5);

Det skal returnere følgende:

Matchende understrenge ved hjælp af pgAdmin

Eksempel 3:

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

Det skal returnere følgende:

Matchende understrenge ved hjælp af pgAdmin

Lad os nu køre eksemplet ved hjælp af bogtabellen i Demo-databasen:

Trin 1) Log ind på din pgAdmin-konto.

Trin 2)

  1. Fra navigationslinjen til venstre - Klik på Databaser.
  2. Klik på Demo.

Matchende understrenge ved hjælp af pgAdmin

Trin 3) Indtast forespørgslen i forespørgselseditoren:

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

Trin 4) Klik på knappen Udfør.

Matchende understrenge ved hjælp af pgAdmin

Det skal returnere følgende:

PostgreSQL substring

Vi har nu en grundlæggende idé om navnet på hver bog.

Matchende understrenge med SQL-regulært udtryk

For at opnå det samme på pgAdmin skal du gøre følgende:

Trin 1) Log ind på din pgAdmin-konto.

Trin 2) Klik på ikonet Forespørgselsværktøj.

Matchende understrenge med SQL-regulært udtryk

Forespørgselsredigeringsvinduet åbnes.

Trin 3) Indtast følgende forespørgsel i redigeringsvinduet.

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

Trin 4) Klik på ikonet Udfør for at udføre forespørgslen.

Matchende understrenge med SQL-regulært udtryk

Det skal returnere følgende:

Matchende understrenge med SQL-regulært udtryk

Resumé

  • PostgreSQL Understrengsfunktion hjælper med at udtrække og returnere kun en del af en streng.
  • Det første tegn i strengen er på position 1.
  • Hvis antallet af tegn, der skal udtrækkes fra strengen, ikke er angivet, vil funktionen trække tegn fra den angivne startposition til slutningen af ​​strengen.
  • Hvis antallet af tegn, der skal udtrækkes, er angivet, vil kun det antal tegn blive udtrukket.

Download databasen brugt i denne vejledning