Vytvorte podreťazce reťazcov v PostgreSQL

Vytvorte Podretazce Retazcov V Postgresql



Existujú prípady, kedy možno budete chcieť extrahovať danú sekciu (podreťazec) z reťazca. Môže sa stať, že vás zaujíma iba daná sekcia a chcete vynechať druhú sekciu reťazca vo svojom výstupe. Predstavte si prípad, keď máte celé meno, ako napríklad „fname lname“ ako jeden reťazec, a vo svojom výstupe chcete extrahovať iba „fname“. Na to musíte použiť funkciu podreťazca PostgreSQL. Pripravili sme podrobného sprievodcu, ktorý treba nasledovať, vrátane príkladov, ktoré vám pomôžu pochopiť, ako môžete vytvárať podreťazce reťazcov v PostgreSQL.

Príklady, ako vytvoriť podreťazce reťazcov v PostgreSQL

Prvá vec, ktorú musíme skontrolovať, je syntax.

SUBSTRING( reťazec/názov_stĺpca, počiatočná_pozícia, dĺžka)

V danej syntaxi môžete zadať reťazec, z ktorého chcete vytvoriť podreťazec, alebo určiť stĺpec v tabuľke. Ďalej musíte zadať pozíciu v reťazci, od ktorej má podreťazec začínať. Nakoniec zadajte dĺžku podreťazca alebo koncovú polohu reťazca. Uveďme si niekoľko príkladov, aby sme to videli v praxi.







Príklad 1: Zadajte dĺžku podreťazca

Keď máte cieľový reťazec, môžete nastaviť, ako dlhý má byť podreťazec. Napríklad, ak máte svoj reťazec ako „Linuxhint“ a chcete vytvoriť svoj podreťazec ako „Linux“, vykonajte nasledujúci príkaz:



SELECT SUBSTRING('Linuxhint' OD 1 ZA 5) AKO meno používateľa;

Na určenie počiatočnej pozície používame kľúčové slovo FROM a na určenie dĺžky podreťazca kľúčové slovo FOR. „Používateľské meno“ je názov, ktorý dávame nášmu výstupu.



Vykonaním príkazu získame nasledujúci výstup. Všimnite si, ako sme dostali požadovaný podreťazec ako výstup:





Predpokladajme, že chcete, aby bol podreťazec vytvorený z inej počiatočnej pozície vo vašom reťazci. Napríklad, ak chcete ako podreťazec „nápovedu“, jednoducho zmeníte počiatočnú pozíciu a dĺžku.



Za týmto účelom vykonáme náš príkaz takto:

Príklad 2: Zadajte pozíciu podreťazca

Niekedy môžete mať svoj reťazec, ale neviete presnú dĺžku podreťazca. Môžete však určiť, na ktorej pozícii začať vytvárať podreťazec. Výstup zobrazuje všetky sekcie reťazca od určenej pozície až po koniec.

V tomto príklade máme náš reťazec „Ahoj Linuxhint“. Aby sme získali „Linuxhint“ ako náš podreťazec bez špecifikovania jeho pozície, musíme len špecifikovať, na akej pozícii chceme podreťazec vytvoriť. V tomto prípade začíname Z pozície 6. Náš príkaz je teda nasledujúci:

SELECT SUBSTRING(‚Ahoj Linuxhint‘ OD 6) AKO používateľské meno;

Príklad 3: Zadajte počiatočnú a koncovú polohu

Zadaný reťazec môžete vytvoriť podreťazec zadaním počiatočnej a koncovej pozície. Týmto spôsobom, aj keď je dĺžka reťazca dlhšia ako požadovaný podreťazec, vytvorí ho iba na základe zadanej počiatočnej a koncovej polohy.

Pomocou „Hello Linuxhint“ ako nášho reťazca môžeme vytvoriť náš podreťazec ako „Hello Linux“ a vynechať ostatné sekcie zadaním počiatočnej a koncovej pozície takto:

SELECT SUBSTRING('Ahoj Linuxhint', 1, 11) AS užívateľské meno;

V tomto prípade nie je potrebné žiadne kľúčové slovo, iba počiatočná a koncová pozícia.

Príklad 4: Práca s PostgreSQL tabuľkou

Je tiež možné vytvoriť podreťazec na základe hodnôt, ktoré vyberiete z daného stĺpca v tabuľke. V našom príklade používame tabuľku „zákazníci“.

Povedzme, že sa zameriavame na stĺpec „cust_email“ a chceme vytvoriť podreťazec zadaním dĺžky. Náš príkaz by sme mali takto:

Všimnite si, že pre každú hodnotu v stĺpci je výstupom podreťazec s dĺžkou 3 pôvodného reťazca.

Aktualizujme tabuľku úplným názvom v stĺpci s názvom. Naša nová tabuľka vyzerá takto:

Teraz, ak chceme zo stĺpca s názvom extrahovať iba prvú sekciu, čo je krstné meno každého z našich klientov, stačí vytvoriť podreťazec pre stĺpec s názvom. Tu musíme určiť počiatočnú pozíciu. Pre dĺžku podreťazca nastavíme pozíciu v každom reťazci, kde je medzera.

Medzera označuje oddelenie mena a priezviska. Náš príkaz teda skontroluje pozíciu, kde v reťazci začína medzera. Potom vyberte podreťazec od prvej pozície po miesto, kde sa stretáva s medzerou.

Náš príkaz spustíme takto:

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

Vyberieme „order_id“ a podreťazec a náš výstup sa zobrazí takto:

Takto môžete vytvoriť podreťazce z reťazcov v tabuľke PostgreSQL.

Záver

PostgreSQL ponúka funkciu podreťazca, ktorá umožňuje používateľom vytvoriť podreťazec pomocou rôznych kritérií. V závislosti od vášho cieľa môžete určiť dĺžku podreťazca alebo počiatočnú a koncovú pozíciu. Príklady, ktoré sú zahrnuté v tomto príspevku, vám pomôžu pohodlne si vytvoriť podreťazce v PostgreSQL. Pokračujte v cvičení, aby ste pochopili koncept.