PostgreSQL SUBSTRING() Functie met Regex-voorbeeld

Wat is PostgreSQL Subtekenreeks?

De PostgreSQL De substring-functie helpt je een deel van een string te extraheren en terug te geven. In plaats van de hele tekenreeks terug te geven, wordt slechts een deel ervan geretourneerd.

Syntaxis

De PostgreSQL De substringfunctie heeft de volgende syntaxis:

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

Kenmerken

Naam BESCHRIJVING
snaar De bronreeks waarvan het gegevenstype varchar, char, string, etc. is.
start positie Het is een optionele parameter. Het geeft de plaats aan waar de extractie van de string zal beginnen. Als u deze parameter weglaat, begint de extractie vanaf positie 1, het eerste teken in de string.
lengte Het is een optionele parameter. Het geeft het aantal tekens aan dat uit de string moet worden gehaald. Als u deze parameter weglaat, wordt de functie geëxtraheerd vanaf de startpositie tot het einde van de tekenreeks.

Voorbeelden

In dit voorbeeld willen we de eerste 4 tekens uit het woord Guru99 halen:

SELECT substring('Guru99' for 4);

De opdracht retourneert het volgende:

PostgreSQL Subtekenreeks

We hebben de startpositie niet gespecificeerd, dus de extractie van de subtekenreeks begint op positie 1. Er zijn 4 tekens geëxtraheerd om het bovenstaande te retourneren.

Het volgende voorbeeld laat zien hoe u de startpositie kunt opgeven:

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

De opdracht retourneert het volgende:

PostgreSQL Subtekenreeks

We hebben gespecificeerd dat de extractie van de subtekenreeks moet beginnen vanaf positie 1 en dat er 4 tekens moeten worden geëxtraheerd.

Laten we 99 uit de string Guru99 halen:

SELECT substring('Guru99' from 5);

De opdracht retourneert het volgende:

PostgreSQL Subtekenreeks

We hebben als startpositie 5 opgegeven. Omdat het aantal te extraheren tekens niet was gespecificeerd, liep de extractie tot het einde van de string.

Hier is nog een voorbeeld:

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

De opdracht retourneert het volgende:

PostgreSQL Subtekenreeks

We zijn begonnen met de extractie op positie 5 en er zijn 2 tekens geëxtraheerd.

Beschouw de onderstaande boekentabel:

PostgreSQL Subtekenreeks

We willen een globaal idee krijgen van de naam van elk boek. We kunnen echter alleen de eerste 15 tekens uit de naamkolom van de tabel halen:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

De opdracht retourneert het volgende:

PostgreSQL Subtekenreeks

We hebben nu een globaal idee over de naam van elk boek.

Matchen van subtekenreeksen met reguliere SQL-expressie

In PostgreSQL, kunnen we een substring extraheren die overeenkomt met een opgegeven POSIX reguliere expressie. In dit geval wordt de substringfunctie gebruikt met de volgende syntaxis:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

Hier volgt een uitleg van de bovenstaande parameters:

De string is de bronstring waarvan data type is varchar, char, string, enz.

Het matching_pattern is het patroon dat gebruikt wordt voor het zoeken in de string.

Voorbeelden

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

De opdracht retourneert het volgende:

Matchen van subtekenreeksen met reguliere SQL-expressie

Onze invoerreeks is uw leeftijd is 22. In het patroon zoeken we naar een numeriek patroon in onze reeks. Wanneer dit wordt gevonden, mag de substringfunctie slechts twee tekens extraheren.

Substrings matchen met pgAdmin

Laten we nu eens kijken hoe de acties worden uitgevoerd met pgAdmin.

De bovenstaande query's waarvoor we geen database nodig hebben, kunnen direct worden uitgevoerd vanuit het query-editorvenster. Doe gewoon het volgende:

Stap 1) Log in op uw account.
Log in op uw pgAdmin-account.

Stap 2) Op pgAdmin,
Klik op het pictogram Querytool.

Overeenkomende substrings met behulp van pgAdmin

Het query-editorvenster wordt geopend.

Stap 3) Typ zoekopdracht.
Typ de volgende query in het editorvenster.

SELECT substring('Guru99' for 4);

Stap 4) Query uitvoeren
Klik op het pictogram Uitvoeren om de query uit te voeren.

Overeenkomende substrings met behulp van pgAdmin

Stap 5) Het uitvoeren van de query is voltooid.
Het volgende zou moeten worden geretourneerd:

Overeenkomende substrings met behulp van pgAdmin

Voorbeeld 2:

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

Het volgende zou moeten worden geretourneerd:

Overeenkomende substrings met behulp van pgAdmin

Hier is het volgende voorbeeld:

SELECT substring('Guru99' from 5);

Het volgende zou moeten worden geretourneerd:

Overeenkomende substrings met behulp van pgAdmin

Voorbeeld 3:

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

Het volgende zou moeten worden geretourneerd:

Overeenkomende substrings met behulp van pgAdmin

Laten we nu het voorbeeld uitvoeren met behulp van de Boekentabel van de Demo-database:

Stap 1) Log in op uw pgAdmin-account.

Stap 2)

  1. Klik in de navigatiebalk aan de linkerkant op Databases.
  2. Klik op Demo.

Overeenkomende substrings met behulp van pgAdmin

Stap 3) Typ de query in de query-editor:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Stap 4) Klik op de knop Uitvoeren.

Overeenkomende substrings met behulp van pgAdmin

Het volgende zou moeten worden geretourneerd:

PostgreSQL Subtekenreeks

We hebben nu een basisidee van de naam van elk boek.

Matchen van subtekenreeksen met reguliere SQL-expressie

Om hetzelfde te bereiken op pgAdmin, doet u het volgende:

Stap 1) Log in op uw pgAdmin-account.

Stap 2) Klik op het pictogram Querytool.

Matchen van subtekenreeksen met reguliere SQL-expressie

Het query-editorvenster wordt geopend.

Stap 3) Typ de volgende query in het editorvenster.

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

Stap 4) Klik op het pictogram Uitvoeren om de query uit te voeren.

Matchen van subtekenreeksen met reguliere SQL-expressie

Het volgende zou moeten worden geretourneerd:

Matchen van subtekenreeksen met reguliere SQL-expressie

Samenvatting

  • De PostgreSQL De substringfunctie helpt bij het extraheren en retourneren van slechts een deel van een string.
  • Het eerste teken van de string bevindt zich op positie 1.
  • Als het aantal tekens dat uit de tekenreeks moet worden geëxtraheerd niet is opgegeven, extraheert de functie tekens vanaf de opgegeven startpositie tot aan het einde van de tekenreeks.
  • Als het aantal te extraheren tekens is opgegeven, wordt alleen dat aantal tekens geëxtraheerd.

Download de database die in deze zelfstudie wordt gebruikt