PostgreSQL Funkce SUBSTRING() s příkladem regulárního výrazu
Co je to PostgreSQL Podřetězec?
Jedno PostgreSQL funkce substring vám pomůže extrahovat a vrátit část řetězce. Místo toho, aby vrátil celý řetězec, vrátí pouze jeho část.
Syntax
Jedno PostgreSQL funkce podřetězec má následující syntaxi:
substring( string [from starting_position] [for length] )
parametry
| Jméno | Description |
|---|---|
| šňůra | Zdrojový řetězec, jehož datový typ je varchar, char, string atd. |
| začáteční pozice | Je to volitelný parametr. Označuje místo, kde začne vytahování struny. Pokud tento parametr vynecháte, extrakce začne od pozice 1, což je první znak v řetězci. |
| délka | Je to volitelný parametr. Označuje počet znaků, které mají být extrahovány z řetězce. Pokud tento parametr vynecháte, funkce bude extrahovat z počáteční_pozice do konce řetězce. |
Příklady
V tomto příkladu chceme extrahovat první 4 znaky ze slova Guru99:
SELECT substring('Guru99' for 4);
Příkaz vrátí následující:
Nezadali jsme počáteční pozici, takže extrakce podřetězce začíná na pozici 1. Pro vrácení výše uvedeného byly extrahovány 4 znaky.
Následující příklad ukazuje, jak určit počáteční pozici:
SELECT substring('Guru99' from 1 for 4);
Příkaz vrátí následující:
Zadali jsme, že extrakce podřetězce by měla začínat od pozice 1 a měly by být extrahovány 4 znaky.
Extrahujeme 99 z řetězce Guru99:
SELECT substring('Guru99' from 5);
Příkaz vrátí následující:
Zadali jsme počáteční pozici jako 5. Protože nebyl zadán počet znaků, které se mají extrahovat, extrakce probíhala až do konce řetězce.
Zde je další příklad:
SELECT substring('Guru99' from 5 for 2);
Příkaz vrátí následující:
Spustili jsme extrakci na pozici 5 a byly extrahovány 2 znaky.
Zvažte níže uvedenou tabulku knihy:
Chceme získat přibližnou představu o názvu každé knihy. Můžeme však extrahovat pouze prvních 15 znaků ze sloupce názvu tabulky:
SELECT id, SUBSTRING(name, 1, 15 ) AS name_initial FROM Book ORDER BY id;
Příkaz vrátí následující:
Nyní máme přibližnou představu o názvu každé knihy.
Shoda podřetězců s regulárním výrazem SQL
In PostgreSQL, můžeme extrahovat podřetězec odpovídající zadanému regulárnímu výrazu POSIX. V tomto případě se funkce podřetězec používá s následující syntaxí:
SUBSTRING(string FROM matching_pattern)
or
SUBSTRING(string, matching_pattern);
Zde je vysvětlení výše uvedených parametrů:
Řetězec je zdrojový řetězec, jehož datový typ je varchar, char, řetězec atd.
Odpovídající_vzor je vzor, který se použije pro vyhledávání v řetězci.
Příklady
SELECT
SUBSTRING (
'Your age is 22',
'([0-9]{1,2})'
) as age;
Příkaz vrátí následující:
Náš vstupní řetězec je váš věk je 22. Ve vzoru hledáme číselný vzor v našem řetězci, když je nalezen, funkce podřetězec by měla extrahovat pouze dva znaky.
Jak porovnat podřetězce pomocí pgAdmin
Nyní se podívejme, jak se akce provádějí pomocí pgAdmin.
Výše uvedené dotazy, kde nepotřebujeme databázi, lze provést přímo z okna editoru dotazů. Stačí provést následující:
Krok 1) Přihlaste se ke svému účtu.
Přihlaste se ke svému účtu pgAdmin.
Krok 2) Na pgAdmin,
Klikněte na ikonu Dotazovacího nástroje.
Otevře se okno editoru dotazů.
Krok 3) Zadejte dotaz.
V okně editoru zadejte následující dotaz.
SELECT substring('Guru99' for 4);
Krok 4) Provést dotaz
Klepnutím na ikonu Provést spustíte dotaz.
Krok 5) Provedení dotazu je hotovo.
Mělo by vrátit následující:
Příklad 2:
SELECT substring('Guru99' from 1 for 4);
Mělo by vrátit následující:
Zde je další příklad:
SELECT substring('Guru99' from 5);
Mělo by vrátit následující:
Příklad 3:
SELECT substring('Guru99' from 5 for 2);
Mělo by vrátit následující:
Nyní spusťte příklad s použitím tabulky Kniha ukázkové databáze:
Krok 1) Přihlaste se ke svému účtu pgAdmin.
Krok 2)
- Na navigační liště vlevo klikněte na Databáze.
- Klepněte na tlačítko Demo.
Krok 3) Zadejte dotaz v editoru dotazů:
SELECT id, SUBSTRING(name, 1, 15 ) AS name_initial FROM Book ORDER BY id;
Krok 4) Klepněte na tlačítko Spustit.
Mělo by vrátit následující:
Nyní máme základní představu o názvu každé knihy.
Shoda podřetězců s regulárním výrazem SQL
Chcete-li provést totéž na pgAdmin, proveďte následující:
Krok 1) Přihlaste se ke svému účtu pgAdmin.
Krok 2) Klikněte na ikonu Dotazovacího nástroje.
Otevře se okno editoru dotazů.
Krok 3) V okně editoru zadejte následující dotaz.
SELECT
SUBSTRING (
'Your age is 22',
'([0-9]{1,2})'
) as age;
Krok 4) Klepnutím na ikonu Provést spustíte dotaz.
Mělo by vrátit následující:
Shrnutí
- Jedno PostgreSQL Funkce podřetězec pomáhá při extrakci a vrácení pouze části řetězce.
- První znak řetězce je na pozici 1.
- Pokud není zadán počet znaků, které mají být extrahovány z řetězce, funkce extrahuje znaky od zadané počáteční pozice do konce řetězce.
- Pokud je zadán počet znaků, které mají být extrahovány, bude extrahován pouze tento počet znaků.



















