PostgreSQL SUBSTRING() Funktion med Regex Exempel
Vad är PostgreSQL Delsträng?
Din PostgreSQL substring-funktionen hjälper dig att extrahera och returnera en del av en sträng. Istället för att returnera hela strängen returnerar den bara en del av den.
syntax
Din PostgreSQL delsträngsfunktion tar följande syntax:
substring( string [from starting_position] [for length] )
parametrar
Namn | Description |
---|---|
sträng | Källsträngen vars datatyp är varchar, char, string, etc. |
start position | Det är en valfri parameter. Det anger platsen där extraheringen av strängen kommer att börja. Om du utelämnar denna parameter kommer extraheringen att börja från position 1, vilket är det första tecknet i strängen. |
längd | Det är en valfri parameter. Det anger antalet tecken som ska extraheras från strängen. Om du utelämnar denna parameter kommer funktionen att extraheras från start_position till slutet av strängen. |
Exempel
I det här exemplet vill vi extrahera de första fyra tecknen från ordet Guru4:
SELECT substring('Guru99' for 4);
Kommandot returnerar följande:
Vi angav inte startpositionen, så extraheringen av delsträngen börjar vid position 1. 4 tecken extraherades för att returnera ovanstående.
Följande exempel visar hur du anger startpositionen:
SELECT substring('Guru99' from 1 for 4);
Kommandot returnerar följande:
Vi specificerade att extraheringen av delsträngen skulle börja från position 1 och 4 tecken skulle extraheras.
Låt oss extrahera 99 från strängen Guru99:
SELECT substring('Guru99' from 5);
Kommandot returnerar följande:
Vi angav startpositionen som 5. Eftersom antalet tecken som skulle extraheras inte angavs, sprang extraheringen till slutet av strängen.
Här är ett annat exempel:
SELECT substring('Guru99' from 5 for 2);
Kommandot returnerar följande:
Vi har börjat extrahera vid position 5, och 2 tecken har extraherats.
Tänk på boktabellen nedan:
Vi vill få en ungefärlig uppfattning om namnet på varje bok. Men vi kan bara extrahera 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, kan vi extrahera en delsträng som matchar ett specificerat POSIX reguljärt uttryck. I det här fallet används delsträngsfunktionen med 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, röding, sträng osv.
Matching_pattern är mönstret som ska användas 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 att din ålder är 22. I mönstret söker vi efter ett numeriskt mönster i vår sträng när detta hittas, delsträngsfunktionen ska bara extrahera två tecken.
Så här matchar du delsträngar med pgAdmin
Låt oss nu se hur åtgärderna utförs med pgAdmin.
Ovanstående frågor där vi inte behöver en databas kan köras direkt från frågeredigeringsfönstret. Gör bara följande:
Steg 1) Logga in på ditt konto.
Logga in på ditt pgAdmin-konto.
Steg 2) På pgAdmin,
Klicka på frågeverktygsikonen.
Frågeredigeringsfönstret öppnas.
Steg 3) Skriv fråga.
Skriv följande fråga i redigeringsfönstret.
SELECT substring('Guru99' for 4);
Steg 4) Utför fråga
Klicka på ikonen Kör för att köra frågan.
Steg 5) Frågekörning är klar.
Det bör 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)
- Klicka på Databaser i navigeringsfältet till vänster.
- Klicka 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:
Sammanfattning
- Din PostgreSQL Delsträngsfunktion hjälper till att extrahera och returnera endast en del av en sträng.
- Det första tecknet i strängen är på position 1.
- Om antalet tecken som ska extraheras från strängen inte anges, kommer funktionen att extrahera tecken från den angivna startpositionen till slutet av strängen.
- Om antalet tecken som ska extraheras anges, kommer endast det antalet tecken att extraheras.
Ladda ner den databas som används i denna handledning