PostgreSQL SUBSTRING() Funktion med Regex Exempel
⚡ Smart sammanfattning
PostgreSQL DELSTRÄNG extracts och returnerar en del av en sträng, med en valfri startposition och längd, och den matchar även text mot ett reguljärt POSIX-uttryck för att hämta mönster som siffror eller koder.

Vad är PostgreSQL Delsträng?
Ocuco-landskapet PostgreSQL delsträngfunktionen hjälper dig att t.ex.tract och returnerar en del av en sträng. Istället för att returnera hela strängen returnerar den bara en del av den, vilket är användbart för att trimma kod och läsa fält med fast bredd.
syntax
Ocuco-landskapet PostgreSQL delsträngsfunktion tar följande syntax:
substring( string [from starting_position] [for length] )
Driftparametrar
Följande parametrar används med delsträngfunktionen:
| sträng | Källsträngen vars datatyp är varchar, char, string, etc. |
| start position | En valfri parameter. Den anger platsen där extractionen av strängen kommer att börja. Om du utelämnar den här parametern, extractionen börjar från position 1, vilket är det första tecknet i strängen. |
| längd | En valfri parameter. Den anger antalet tecken som ska exkluderas.tracfrån strängen. Om du utelämnar den här parametern, funktionen extracts från startposition till slutet av strängen. |
Exempel
I det här exemplet vill vi t.ex.tracde första fyra tecknen i ordet Guru99:
SELECT substring('Guru99' for 4);
Kommandot returnerar följande:
Vi specificerade inte startpositionen, så extraction av delsträngen som började vid position 1. Fyra tecken exkluderadestracted för att returnera resultatet ovan.
Följande exempel visar hur du anger startpositionen:
SELECT substring('Guru99' from 1 for 4);
Kommandot returnerar följande:
Vi specificerade att extracDelsträngens position ska börja från position 1, och 4 tecken ska vara ex.tracted.
Låt oss extract 99 från strängen Guru99:
SELECT substring('Guru99' from 5);
Kommandot returnerar följande:
Vi angav startpositionen som 5. Eftersom antalet tecken som ska vara ex.tracted specificerades inte, extractionen sprang till slutet av strängen.
Här är ett annat exempel:
SELECT substring('Guru99' from 5 for 2);
Kommandot returnerar följande:
Vi började extraction på position 5, och 2 tecken exkluderadestracted.
Tänk på boktabellen nedan:
Vi vill få en ungefärlig uppfattning om namnet på varje bok. Vi kan t.ex.tracendast de första 15 tecknen från namnkolumnen i tabellen:
SELECT id, SUBSTRING(name, 1, 15 ) AS name_initial FROM Book ORDER BY id;
Kommandot returnerar följande:
Vi har nu en ungefärlig uppfattning om namnet på varje bok.
Matcha delsträngar med SQL Regular Expression
In PostgreSQL, du kan extracen delsträng som matchar ett angivet reguljärt POSIX-uttryck. I det här fallet använder delsträngfunktionen följande syntax:
SUBSTRING(string FROM matching_pattern)
or
SUBSTRING(string, matching_pattern);
Här är en förklaring av ovanstående parametrar. Strängen är källsträngen, vars data typ är varchar, char, sträng och så vidare. matching_pattern är mönstret som används för att söka i strängen.
Exempel
SELECT SUBSTRING ( 'Your age is 22', '([0-9]{1,2})' ) as age;
Kommandot returnerar följande:
Vår inmatningssträng är Din ålder är 22. I mönstret söker vi efter ett numeriskt mönster; när det hittas, används delsträngsfunktionen extracbara två tecken.
Hur man matchar delsträngar med hjälp av pgAdmin
Nu ska vi se hur dessa åtgärder utförs med pgAdmin. Frågor som inte behöver en databas kan köras direkt från frågeredigerarfönstret. Gör bara följande:
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2) Klicka på ikonen för frågeverktyget på pgAdmin.
Frågeredigeringsfönstret öppnas.
Steg 3) Skriv följande fråga i redigeringsfönstret.
SELECT substring('Guru99' for 4);
Steg 4) Klicka på ikonen Kör för att köra frågan.
Steg 5) Frågekörningen är klar. Den ska returnera följande:
Exempel 2:
SELECT substring('Guru99' from 1 for 4);
Det bör returnera följande:
Här är nästa exempel:
SELECT substring('Guru99' from 5);
Det bör returnera följande:
Exempel 3:
SELECT substring('Guru99' from 5 for 2);
Det bör returnera följande:
Låt oss nu köra exemplet med hjälp av boktabellen i demodatabasen:
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2) I navigeringsfältet till vänster klickar du på Databaser och sedan på Demo.
Steg 3) Skriv in frågan i frågeredigeraren:
SELECT id, SUBSTRING(name, 1, 15 ) AS name_initial FROM Book ORDER BY id;
Steg 4) Klicka på knappen Kör.
Det bör returnera följande:
Vi har nu en grundläggande idé om namnet på varje bok.
Matcha delsträngar med SQL Regular Expression
För att åstadkomma samma sak på pgAdmin, gör följande:
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2) Klicka på frågeverktygsikonen.
Frågeredigeringsfönstret öppnas.
Steg 3) Skriv följande fråga i redigeringsfönstret.
SELECT SUBSTRING ( 'Your age is 22', '([0-9]{1,2})' ) as age;
Steg 4) Klicka på ikonen Kör för att köra frågan.
Det bör returnera följande:
Ladda ner den databas som används i denna handledning



















