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:
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:
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:
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:
Vi har startet udtrækning ved position 5, og 2 tegn er blevet udtrukket.
Overvej bogtabellen nedenfor:
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:
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:
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.
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.
Trin 5) Forespørgselsudførelse er udført.
Det skal returnere følgende:
Eksempel 2:
SELECT substring('Guru99' from 1 for 4);
Det skal returnere følgende:
Her er det næste eksempel:
SELECT substring('Guru99' from 5);
Det skal returnere følgende:
Eksempel 3:
SELECT substring('Guru99' from 5 for 2);
Det skal returnere følgende:
Lad os nu køre eksemplet ved hjælp af bogtabellen i Demo-databasen:
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Fra navigationslinjen til venstre - Klik på Databaser.
- Klik på Demo.
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.
Det skal returnere følgende:
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.
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.
Det skal returnere følgende:
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