PostgreSQL SUBSTRING () met voorbeeld

Inhoudsopgave:

Anonim

Wat is PostgreSQL-substring?

De PostgreSQL-substring-functie helpt u bij het extraheren en retourneren van een deel van een string. In plaats van de hele string te retourneren, retourneert het slechts een deel ervan.

In deze PostgreSQL-tutorial leert u:

  • Wat is Postgresql-substring?
  • Syntaxis
  • Voorbeelden
  • Substrings matchen met SQL Regular Expression
  • Met behulp van pgAdmin

Syntaxis

De PostgreSQL-substringfunctie heeft de volgende syntaxis:

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

Parameters

Naam Omschrijving
draad De brontekenreeks waarvan het gegevenstype varchar, char, string, enz. 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 tekenreeks.
lengte Het is een optionele parameter. Het geeft het aantal tekens aan dat uit de tekenreeks 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 karakters extraheren uit het woord Guru99:

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 specificeert:

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 de startpositie gespecificeerd als 5. Aangezien het aantal te extraheren tekens niet was opgegeven, 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 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 extraheren uit de naamkolom van de tabel:

SELECTid,SUBSTRING(name, 1, 15 ) AS name_initialFROMBookORDER BYid;

De opdracht retourneert het volgende:

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

Substrings matchen met SQL Regular Expression

In PostgreSQL kunnen we een subtekenreeks extraheren die overeenkomt met een opgegeven POSIX-reguliere expressie. In dit geval wordt de subtekenreeksfunctie gebruikt met de volgende syntaxis:

SUBSTRING(string FROM matching_pattern)

of

SUBSTRING(string, matching_pattern);

Hier is een uitleg van de bovenstaande parameters:

De tekenreeks is de brontekenreeks waarvan het gegevenstype varchar, char, string, etc. is.

Het matching_pattern is het patroon dat moet worden gebruikt om in de string te zoeken.

Voorbeelden:

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

De opdracht retourneert het volgende:

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

Met behulp van pgAdmin

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

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

Stap 1) Log in op uw pgAdmin-account.

Stap 2) Klik op het pictogram van de Query-tool.

Het venster van de query-editor wordt geopend.

Stap 3) Typ de volgende vraag in het editorvenster.

SELECT substring('Guru99' for 4);

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

Het zou het volgende moeten retourneren:

Voorbeeld 2:

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

Het zou het volgende moeten retourneren:

Hier is het volgende voorbeeld:

SELECT substring('Guru99' from 5);

Het zou het volgende moeten retourneren:

Voorbeeld 3:

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

Het zou het volgende moeten retourneren:

Laten we nu het voorbeeld uitvoeren met behulp van de boekentabel van de demodatabase:

Stap 1) Log in op uw pgAdmin-account.

Stap 2)

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

Stap 3) Typ de vraag in de zoekopdrachteditor:

SELECTid,SUBSTRING(name, 1, 15 ) AS name_initialFROMBookORDER BYid;

Stap 4) Klik op de knop Uitvoeren.

Het zou het volgende moeten retourneren:

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

Substrings matchen met SQL Regular Expression

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

Stap 1) Log in op uw pgAdmin-account.

Stap 2) Klik op het pictogram van de Query-tool.

Het venster van de query-editor wordt geopend.

Stap 3) Typ de volgende vraag in het editorvenster.

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

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

Het zou het volgende moeten retourneren:

Overzicht:

  • De PostgreSQL-substringfunctie helpt bij het extraheren en retourneren van slechts een deel van een string.
  • Het eerste teken van de string staat op positie 1.
  • Als het aantal tekens dat uit de tekenreeks moet worden gehaald, niet is opgegeven, haalt de functie tekens uit de opgegeven startpositie tot 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