Vytvořte podřetězce řetězců v PostgreSQL

Vytvorte Podretezce Retezcu V Postgresql



Existují případy, kdy můžete chtít extrahovat danou sekci (podřetězec) z řetězce. Může se stát, že vás zajímá pouze daná sekce a chcete ve výstupu vynechat druhou část řetězce. Představte si případ, kdy máte celé jméno, například „fname lname“ jako jeden řetězec, a chcete pouze extrahovat „fname“ ve svém výstupu. K tomu musíte použít funkci PostgreSQL podřetězec. Připravili jsme podrobného průvodce, který je třeba následovat, včetně příkladů, které vám pomohou pochopit, jak můžete vytvořit podřetězce řetězců v PostgreSQL.

Příklady jak vytvořit podřetězce řetězců v PostgreSQL

První věc, kterou musíme zkontrolovat, je syntaxe.

SUBSTRING( řetězec/název_sloupce, počáteční_pozice, délka)

V dané syntaxi můžete zadat řetězec, ze kterého chcete vytvořit podřetězec, nebo zadat sloupec ve vaší tabulce. Dále musíte zadat pozici v řetězci, kde má podřetězec začínat. Nakonec zadejte délku podřetězce nebo koncovou polohu řetězce. Podívejme se na několik příkladů, jak to vidět v praxi.







Příklad 1: Zadejte délku podřetězce

Když máte cílový řetězec, můžete nastavit, jak dlouhý má být podřetězec. Například, pokud máte svůj řetězec jako „Linuxhint“ a chcete vytvořit svůj podřetězec jako „Linux“, proveďte následující příkaz:



SELECT SUBSTRING('Linuxhint' FROM 1 FOR 5) JAKO uživatelské jméno;

Klíčové slovo FROM používáme k určení počáteční pozice a klíčové slovo FOR k určení délky podřetězce. „Uživatelské jméno“ je jméno, které dáváme našemu výstupu.



Spuštěním příkazu získáme následující výstup. Všimněte si, jak jsme získali požadovaný podřetězec jako výstup:





Předpokládejme, že chcete, aby byl podřetězec vytvořen z jiné počáteční pozice ve vašem řetězci. Pokud například chcete jako podřetězec „nápovědu“, jednoduše změníte počáteční pozici a délku.



Za tímto účelem provedeme náš příkaz následovně:

Příklad 2: Zadejte pozici podřetězce

Někdy můžete mít svůj řetězec, ale neznáte přesnou délku podřetězce. Můžete však určit, na jaké pozici začít vytvářet podřetězec. Výstup zobrazuje všechny sekce strun od zadané pozice až do konce.

Pro tento příklad máme náš řetězec jako „Hello Linuxhint“. Abychom získali „Linuxhint“ jako náš podřetězec, aniž bychom specifikovali jeho pozici, musíme pouze určit, na jaké pozici chceme podřetězec vytvořit. V tomto případě začínáme Z pozice 6. Náš příkaz je tedy následující:

SELECT SUBSTRING(‘Ahoj Linuxhint‘ FROM 6) JAKO uživatelské jméno;

Příklad 3: Určete počáteční a koncovou polohu

Zadaný řetězec můžete vytvořit podřetězec zadáním počáteční a koncové pozice. Tímto způsobem, i když je délka řetězce delší než požadovaný podřetězec, vytvoří jej pouze na základě zadané počáteční a koncové pozice.

Pomocí „Hello Linuxhint“ jako našeho řetězce můžeme vytvořit náš podřetězec jako „Hello Linux“ a vynechat ostatní sekce zadáním počáteční a koncové pozice následovně:

SELECT SUBSTRING('Ahoj Linuxhint', 1, 11) AS uživatelské jméno;

Pro tento případ není vyžadováno žádné klíčové slovo, pouze počáteční a koncová pozice.

Příklad 4: Práce s tabulkou PostgreSQL

Je také možné vytvořit podřetězec na základě hodnot, které vyberete z daného sloupce v tabulce. Pro náš příklad použijeme tabulku „zákazníci“.

Řekněme, že cílíme na sloupec „cust_email“ a chceme vytvořit podřetězec zadáním délky. Náš příkaz bychom měli takto:

Všimněte si, že pro každou hodnotu ve sloupci je výstupem podřetězec o délce 3 původního řetězce.

Aktualizujme tabulku úplným jménem ve sloupci se jménem. Naše nová tabulka vypadá takto:

Nyní, pokud chceme ze sloupce name extrahovat pouze první sekci, což je křestní jméno každého z našich klientů, stačí vytvořit podřetězec pro sloupec name. Zde musíme určit výchozí pozici. Pro délku podřetězce nastavíme pozici v každém řetězci, kde je mezera.

Mezera označuje oddělení mezi jménem a příjmením. Náš příkaz tedy kontroluje pozici, kde začíná mezera v řetězci. Poté vyberte podřetězec od první pozice až po místo, kde se setkává s mezerou.

Náš příkaz spustíme následovně:

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

Vybereme „order_id“ a podřetězec a náš výstup se zobrazí takto:

Takto můžete vytvořit podřetězce z řetězců v tabulce PostgreSQL.

Závěr

PostgreSQL nabízí funkci podřetězec, která umožňuje uživatelům vytvořit podřetězec pomocí různých kritérií. V závislosti na vašem cíli můžete určit délku podřetězce nebo počáteční a koncovou pozici. Příklady, které jsou popsány v tomto příspěvku, vám pomohou zorientovat se ve vytváření podřetězců v PostgreSQL. Pokračujte v cvičení, abyste pochopili koncept.