PostgreSQL SUBSTRING() Funcție cu exemplu regex

Ce Este PostgreSQL Subșir?

PostgreSQL funcția substring vă ajută să extrageți și să returnați o parte dintr-un șir. În loc să returneze întregul șir, returnează doar o parte din el.

Sintaxă

PostgreSQL funcția subșir are următoarea sintaxă:

substring( string [from starting_position] [for length] )

parametrii

Nume Description
şir Șirul sursă al cărui tip de date este varchar, char, șir etc.
poziție_de_pornire Este un parametru optional. Indică locul de unde va începe extragerea șirului. Dacă omiteți acest parametru, extragerea va începe din poziția 1, care este primul caracter din șir.
lungime Este un parametru opțional. Indică numărul de caractere care trebuie extrase din șir. Dacă omiteți acest parametru, funcția va extrage de la starting_position până la sfârșitul șirului.

Exemple

În acest exemplu, dorim să extragem primele 4 caractere din cuvântul Guru99:

SELECT substring('Guru99' for 4);

Comanda va returna următoarele:

PostgreSQL Subșir

Nu am specificat poziția de pornire, așa că extragerea subșirului începe de la poziția 1. Au fost extrase 4 caractere pentru a returna cele de mai sus.

Următorul exemplu arată cum se specifică poziția de pornire:

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

Comanda va returna următoarele:

PostgreSQL Subșir

Am precizat că extragerea subșirului trebuie să înceapă de la poziția 1, și să fie extrase 4 caractere.

Să extragem 99 din șirul Guru99:

SELECT substring('Guru99' from 5);

Comanda va returna următoarele:

PostgreSQL Subșir

Am specificat poziția de pornire ca fiind 5. Deoarece numărul de caractere de extras nu a fost specificat, extragerea a rulat până la sfârșitul șirului.

Iată un alt exemplu:

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

Comanda va returna următoarele:

PostgreSQL Subșir

Am început extracția de la poziția 5 și au fost extrase 2 caractere.

Luați în considerare tabelul Cărții de mai jos:

PostgreSQL Subșir

Vrem să ne facem o idee aproximativă despre numele fiecărei cărți. Cu toate acestea, putem extrage doar primele 15 caractere din coloana de nume a tabelului:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Comanda va returna următoarele:

PostgreSQL Subșir

Acum avem o idee aproximativă despre numele fiecărei cărți.

Potrivirea subșirurilor cu expresia regulată SQL

In PostgreSQL, putem extrage un subșir care se potrivește cu o expresie regulată POSIX specificată. În acest caz, funcția subșir este utilizată cu următoarea sintaxă:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

Iată o explicație a parametrilor de mai sus:

Șirul este șirul sursă al cărui tip de date este varchar, char, șir etc.

Mating_pattern este modelul care trebuie utilizat pentru căutarea în șir.

Exemple

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Comanda va returna următoarele:

Potrivirea subșirurilor cu expresia regulată SQL

Șirul nostru de intrare este vârsta ta este 22. În model, căutăm un model numeric în șirul nostru când acesta este găsit, funcția subșir ar trebui să extragă doar două caractere.

Cum să potriviți subșiruri folosind pgAdmin

Acum să vedem cum sunt efectuate acțiunile folosind pgAdmin.

Interogările de mai sus în care nu avem nevoie de o bază de date pot fi executate direct din fereastra editorului de interogări. Doar faceți următoarele:

Pas 1) Conectați-vă la contul dvs.
Conectați-vă la contul dvs. pgAdmin.

Pas 2) Pe pgAdmin,
Faceți clic pe pictograma Instrument de interogare.

Subșiruri de potrivire folosind pgAdmin

Se va deschide fereastra editorului de interogări.

Pas 3) Tastați interogarea.
Tastați următoarea interogare în fereastra editorului.

SELECT substring('Guru99' for 4);

Pas 4) Executați interogarea
Faceți clic pe pictograma Execute pentru a executa interogarea.

Subșiruri de potrivire folosind pgAdmin

Pas 5) Execuția interogării este finalizată.
Ar trebui să returneze următoarele:

Subșiruri de potrivire folosind pgAdmin

Exemplu 2:

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

Ar trebui să returneze următoarele:

Subșiruri de potrivire folosind pgAdmin

Iată următorul exemplu:

SELECT substring('Guru99' from 5);

Ar trebui să returneze următoarele:

Subșiruri de potrivire folosind pgAdmin

Exemplu 3:

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

Ar trebui să returneze următoarele:

Subșiruri de potrivire folosind pgAdmin

Acum, să rulăm exemplul folosind tabelul Book al bazei de date Demo:

Pas 1) Conectați-vă la contul dvs. pgAdmin.

Pas 2)

  1. Din bara de navigare din stânga, faceți clic pe Baze de date.
  2. Faceți clic pe Demo.

Subșiruri de potrivire folosind pgAdmin

Pas 3) Introduceți interogarea în editorul de interogări:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Pas 4) Faceți clic pe butonul Execute.

Subșiruri de potrivire folosind pgAdmin

Ar trebui să returneze următoarele:

PostgreSQL Subșir

Acum avem o idee de bază despre numele fiecărei cărți.

Potrivirea subșirurilor cu expresia regulată SQL

Pentru a realiza același lucru pe pgAdmin, faceți următoarele:

Pas 1) Conectați-vă la contul dvs. pgAdmin.

Pas 2) Faceți clic pe pictograma Instrument de interogare.

Potrivirea subșirurilor cu expresia regulată SQL

Se va deschide fereastra editorului de interogări.

Pas 3) Tastați următoarea interogare în fereastra editorului.

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Pas 4) Faceți clic pe pictograma Execute pentru a executa interogarea.

Potrivirea subșirurilor cu expresia regulată SQL

Ar trebui să returneze următoarele:

Potrivirea subșirurilor cu expresia regulată SQL

Rezumat

  • PostgreSQL Funcția subșir ajută la extragerea și returnarea doar a unei părți a unui șir.
  • Primul caracter al șirului este în poziția 1.
  • Dacă numărul de caractere care trebuie extrase din șir nu este specificat, funcția va extrage caractere din poziția de început specificată până la sfârșitul șirului.
  • Dacă este specificat numărul de caractere de extras, va fi extras doar acel număr de caractere.

Descărcați baza de date folosită în acest tutorial