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 following syntaks:

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

parametre

Navn Beskrivelse
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 folloenwing:

PostgreSQL substring

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

Folloenwing eksempel viser, hvordan man angiver startpositionen:

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

Kommandoen returnerer folloenwing:

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 folloenwing:

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 folloenwing:

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 folloenwing:

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 following 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 searching i strengen.

Eksempler

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

Kommandoen returnerer folloenwing:

Matchende understrenge med SQL-regulært udtryk

Vores inputstreng er din alder er 22. I mønsteret er vi searching for et numerisk mønster i vores streng, når dette er fundet, bør understrengsfunktionen 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 folloenwing:

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.
Skriv following forespørgsel i editorvinduet.

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 burde returnere folloenwing:

Matchende understrenge ved hjælp af pgAdmin

Eksempel 2:

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

Det burde returnere folloenwing:

Matchende understrenge ved hjælp af pgAdmin

Her er det næste eksempel:

SELECT substring('Guru99' from 5);

Det burde returnere folloenwing:

Matchende understrenge ved hjælp af pgAdmin

Eksempel 3:

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

Det burde returnere folloenwing:

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 burde returnere folloenwing:

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, gør følgendewing:

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) Skriv following forespørgsel i editorvinduet.

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 burde returnere folloenwing:

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