Maak subreeksen van tekenreeksen in PostgreSQL

Maak Subreeksen Van Tekenreeksen In Postgresql



Er zijn gevallen waarin u mogelijk een bepaalde sectie (subtekenreeks) uit een tekenreeks wilt extraheren. Het kan zijn dat u alleen geïnteresseerd bent in het gegeven gedeelte en het andere gedeelte van de string in uw uitvoer wilt weglaten. Stel je een geval voor waarin je een volledige naam zoals “fname lname” als één string hebt en je alleen de “fname” in je uitvoer wilt extraheren. Daarvoor moet u de PostgreSQL-substringfunctie gebruiken. We hebben een gedetailleerde handleiding opgesteld die u kunt volgen, inclusief voorbeelden om u te helpen begrijpen hoe u subtekenreeksen van tekenreeksen kunt maken in PostgreSQL.

Voorbeelden van het maken van substrings van strings in PostgreSQL

Het eerste dat we moeten controleren, is de syntaxis.

SUBSTRING( tekenreeks/kolomnaam, startpositie, lengte)

In de gegeven syntaxis kunt u de tekenreeks opgeven waarvan u een subtekenreeks wilt maken, of de kolom in uw tabel opgeven. Vervolgens moet u de positie in de string opgeven waar u de substring wilt laten beginnen. Geef ten slotte de lengte van de substring of de eindpositie van de string op. Laten we een paar voorbeelden hebben om het in actie te zien.







Voorbeeld 1: Geef de lengte van de subtekenreeks op

Wanneer u uw doelstring heeft, kunt u instellen hoe lang de substring moet zijn. Als u bijvoorbeeld uw string als “Linuxhint” hebt en u wilt uw substring als “Linux” maken, voer dan de volgende opdracht uit:



SELECT SUBSTRING('Linuxhint' VAN 1 VOOR 5) AS gebruikersnaam;

We gebruiken het sleutelwoord FROM om onze startpositie te specificeren en het sleutelwoord FOR om de lengte van de subtekenreeks op te geven. De “gebruikersnaam” is de naam die we aan onze uitvoer geven.



We krijgen de volgende uitvoer door de opdracht uit te voeren. Merk op hoe we onze gewenste substring als uitvoer kregen:





Stel dat u de substring wilt maken vanaf een andere startpositie in uw string. Als u bijvoorbeeld “hint” als subtekenreeks wilt, wijzigt u eenvoudigweg de startpositie en de lengte.



Daarvoor voeren we onze opdracht als volgt uit:

Voorbeeld 2: Specificeer de positie van de subtekenreeks

Soms heb je misschien je string, maar weet je niet de exacte lengte van de substring. U kunt echter opgeven op welke positie u moet beginnen met het maken van de subtekenreeks. De uitvoer toont alle snaarsecties vanaf de opgegeven positie tot het einde.

Voor dit voorbeeld hebben we onze string als 'Hallo Linuxhint'. Om “Linuxhint” als onze substring te krijgen zonder de positie ervan te specificeren, hoeven we alleen maar op te geven op welke positie we de substring willen maken. In dit geval beginnen we VANUIT positie 6. Ons commando is dus als volgt:

SELECT SUBSTRING(‘Hallo Linuxhint’ FROM 6) AS gebruikersnaam;

Voorbeeld 3: Specificeer de begin- en eindposities

Gegeven een string kunt u een substring maken door de begin- en eindposities op te geven. Op deze manier wordt de tekenreeks, zelfs als de lengte langer is dan de gewenste subtekenreeks, alleen gemaakt op basis van de opgegeven begin- en eindposities.

Door “Hello Linuxhint” als onze string te gebruiken, kunnen we onze substring creëren als “Hello Linux” en de andere secties weglaten door de begin- en eindposities als volgt op te geven:

SELECT SUBSTRING('Hallo Linuxhint', 1, 11) AS gebruikersnaam;

Voor dit geval is geen trefwoord vereist, alleen de begin- en eindposities.

Voorbeeld 4: Werken met een PostgreSQL-tabel

Het is ook mogelijk om een ​​subtekenreeks te maken op basis van de waarden die u selecteert in een bepaalde kolom in uw tabel. Voor ons voorbeeld gebruiken we de tabel “klanten”.

Laten we zeggen dat we de kolom “cust_email” targeten en dat we een subtekenreeks willen maken door de lengte op te geven. Wij zouden ons bevel als volgt hebben:

Merk op dat voor elke waarde in de kolom de uitvoer een subtekenreeks is met een lengte van 3 van de oorspronkelijke tekenreeks.

Laten we de tabel bijwerken met een volledige naam in onze naamkolom. Onze nieuwe tabel ziet er als volgt uit:

Als we nu alleen de eerste sectie uit de naamkolom willen extraheren, wat de voornaam is van elk van onze klanten, zal het maken van een subtekenreeks voor de naamkolom voldoende zijn. Hier moeten we de startpositie opgeven. Voor de lengte van de subtekenreeks stellen we in dat dit de positie is in elke tekenreeks waar een spatie aanwezig is.

De spatie markeert de scheiding tussen de voor- en achternaam. Ons commando controleert dus de positie waar de spatie in de string begint. Selecteer vervolgens de subtekenreeks vanaf de eerste positie tot waar deze de spatie raakt.

We voeren onze opdracht als volgt uit:

SELECT order_id, SUBSTRING(naam FROM 1 FOR POSITION( ‘ ‘ IN naam) – 1) AS client_fname FROM klanten;

We selecteren de “order_id” en de substring, en onze uitvoer ziet er als volgt uit:

Zo kun je substrings maken van strings in een PostgreSQL-tabel.

Conclusie

PostgreSQL biedt de substringfunctie waarmee gebruikers een substring kunnen maken met behulp van verschillende criteria. Afhankelijk van uw doel kunt u de lengte van de substring of de begin- en eindposities opgeven. De voorbeelden die in dit bericht worden behandeld, helpen u vertrouwd te raken met het maken van substrings in PostgreSQL. Blijf oefenen om het concept te begrijpen.