PostgreSQL SUBSTRING() Functie met Regex-voorbeeld

Wat is PostgreSQL Subtekenreeks?

Het PostgreSQL De substring-functie helpt je bij het uitvoeren vantracen retourneert een deel van een tekenreeks. In plaats van de hele tekenreeks terug te geven, retourneert het slechts een deel ervan.

Syntaxis

Het 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 extracDe bewerking van de tekenreeks zal beginnen. Als u deze parameter weglaat, zal de bewerkingtracDe bewerking begint bij positie 1, oftewel het eerste teken in de tekenreeks.
lengte Dit is een optionele parameter. Deze geeft het aantal tekens aan dat moet worden weergegeven.tracted uit de tekenreeks. Als u deze parameter weglaat, zal de functie extract vanaf de startpositie tot het einde van de tekenreeks.

Voorbeelden

In dit voorbeeld willen we ...tracde eerste 4 tekens van het woord Guru99:

SELECT substring('Guru99' for 4);

De opdracht retourneert het volgende:

PostgreSQL Subtekenreeks

We hebben de startpositie niet gespecificeerd, dus de extracDe substring begint op positie 1. Er werden 4 tekens geรซxtraheerd.tracted om het bovenstaande terug te sturen.

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 extracDe substring moet beginnen op positie 1 en moet uit 4 tekens bestaan.tracted.

Laten we eenstract 99 uit de string Guru99:

SELECT substring('Guru99' from 5);

De opdracht retourneert het volgende:

PostgreSQL Subtekenreeks

We hebben de startpositie ingesteld op 5. Aangezien het aantal tekens dat geรซxtracTed werd niet gespecificeerd, de extracDe tie liep 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 extractie op positie 5, en 2 tekens zijn geรซxtracted.

Beschouw de onderstaande boekentabel:

PostgreSQL Subtekenreeks

We willen een globaal idee krijgen van de titel van elk boek. We kunnen echter wel...tracalleen de eerste 15 tekens uit de kolom 'naam' van de tabel:

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, we kunnen extracEen substring die overeenkomt met een opgegeven POSIX-reguliere expressie. In dit geval wordt de substring-functie 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 invoerstring is "your age is 22". In het patroon zoeken we naar een numeriek patroon in onze string. Wanneer dit gevonden wordt, moet de substring-functie alleen het volgende resultaat weergeven:tract twee tekens.

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

  • Het PostgreSQL De substring-functie helpt bij het uitvoeren vantracting en slechts een deel van een tekenreeks retourneren.
  • Het eerste teken van de string bevindt zich op positie 1.
  • Als het aantal tekens dat moet worden weergegeventracAls de string niet gespecificeerd is, zal de functie een foutmelding geven.tract tekens vanaf de opgegeven startpositie tot het einde van de tekenreeks.
  • Als het aantal tekens dat moet worden weergegeventracAls ted is gespecificeerd, wordt alleen dat aantal tekens weergegeven.tracted.

Download de database die in deze zelfstudie wordt gebruikt

Vat dit bericht samen met: