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í:

PostgreSQL Podřetězec

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í:

PostgreSQL Podřetězec

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í:

PostgreSQL Podřetězec

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í:

PostgreSQL Podřetězec

Spustili jsme extrakci na pozici 5 a byly extrahovány 2 znaky.

Zvažte níže uvedenou tabulku knihy:

PostgreSQL Podřetězec

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í:

PostgreSQL Podřetězec

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í:

Shoda podřetězců s regulárním výrazem SQL

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.

Shoda podřetězců pomocí pgAdmin

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.

Shoda podřetězců pomocí pgAdmin

Krok 5) Provedení dotazu je hotovo.
Mělo by vrátit následující:

Shoda podřetězců pomocí pgAdmin

Příklad 2:

SELECT substring('Guru99' from 1 for 4);

Mělo by vrátit následující:

Shoda podřetězců pomocí pgAdmin

Zde je další příklad:

SELECT substring('Guru99' from 5);

Mělo by vrátit následující:

Shoda podřetězců pomocí pgAdmin

Příklad 3:

SELECT substring('Guru99' from 5 for 2);

Mělo by vrátit následující:

Shoda podřetězců pomocí pgAdmin

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)

  1. Na navigační liště vlevo klikněte na Databáze.
  2. Klepněte na tlačítko Demo.

Shoda podřetězců pomocí pgAdmin

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.

Shoda podřetězců pomocí pgAdmin

Mělo by vrátit následující:

PostgreSQL Podřetězec

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.

Shoda podřetězců s regulárním výrazem SQL

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.

Shoda podřetězců s regulárním výrazem SQL

Mělo by vrátit následující:

Shoda podřetězců s regulárním výrazem SQL

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ů.

Stáhněte si databázi použitou v tomto kurzu

Shrňte tento příspěvek takto: