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:
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:
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:
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:
We zijn begonnen met de extractie op positie 5 en er zijn 2 tekens geëxtraheerd.
Beschouw de onderstaande boekentabel:
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:
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:
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.
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.
Stap 5) Het uitvoeren van de query is voltooid.
Het volgende zou moeten worden geretourneerd:
Voorbeeld 2:
SELECT substring('Guru99' from 1 for 4);
Het volgende zou moeten worden geretourneerd:
Hier is het volgende voorbeeld:
SELECT substring('Guru99' from 5);
Het volgende zou moeten worden geretourneerd:
Voorbeeld 3:
SELECT substring('Guru99' from 5 for 2);
Het volgende zou moeten worden geretourneerd:
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)
- Klik in de navigatiebalk aan de linkerkant op Databases.
- Klik op Demo.
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.
Het volgende zou moeten worden geretourneerd:
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.
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.
Het volgende zou moeten worden geretourneerd:
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