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.