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:

PostgreSQL Substräng

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:

PostgreSQL Substräng

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:

PostgreSQL Substräng

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:

PostgreSQL Substräng

Vi har börjat extrahera vid position 5, och 2 tecken har extraherats.

Tänk på boktabellen nedan:

PostgreSQL Substräng

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:

PostgreSQL Substräng

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:

Matcha delsträngar med SQL Regular Expression

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.

Matchande delsträngar med pgAdmin

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.

Matchande delsträngar med pgAdmin

Steg 5) Frågekörning är klar.
Det bör returnera följande:

Matchande delsträngar med pgAdmin

Exempel 2:

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

Det bör returnera följande:

Matchande delsträngar med pgAdmin

Här är nästa exempel:

SELECT substring('Guru99' from 5);

Det bör returnera följande:

Matchande delsträngar med pgAdmin

Exempel 3:

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

Det bör returnera följande:

Matchande delsträngar med pgAdmin

Låt oss nu köra exemplet med hjälp av boktabellen i demodatabasen:

Steg 1) Logga in på ditt pgAdmin-konto.

Steg 2)

  1. Klicka på Databaser i navigeringsfältet till vänster.
  2. Klicka på Demo.

Matchande delsträngar med pgAdmin

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.

Matchande delsträngar med pgAdmin

Det bör returnera följande:

PostgreSQL Substräng

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.

Matcha delsträngar med SQL Regular Expression

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.

Matcha delsträngar med SQL Regular Expression

Det bör returnera följande:

Matcha delsträngar med SQL Regular Expression

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