PostgreSQL SUBSTRING() Funcție cu exemplu regex

⚡ Rezumat inteligent

PostgreSQL SUBȘIR extracts și returnează o parte a unui șir de caractere, folosind o poziție de pornire și o lungime opționale și, de asemenea, potrivește textul cu o expresie regulată POSIX pentru a extrage modele precum numere sau coduri.

  • 📋 Sintaxă: substring(șir [de la început] [pentru lungime]) returnează o porțiune din șirul sursă.
  • 1️⃣ Pozitii: Pozițiile caracterelor încep de la 1, iar omiterea lungimii se citește până la sfârșitul șirului.
  • 🔎 Expresie regulată: SUBSTRING(șir FROM model) extracts este primul text care corespunde unei expresii regulate POSIX.
  • 🧮 Grouping: Un grup între paranteze în model returnează doar partea capturată a potrivirii.
  • 🖥️ pgAdmin: Fiecare interogare de tip subșir se execută în același mod în editorul de interogări pgAdmin.
  • 🤖 Ajutor AI: Asistenții inteligenți artificiali generează și explică modele regex pentru exprimarea precisă a subșirurilortracTION.

PostgreSQL Funcția SUBSTRING cu Regex

Ce Este PostgreSQL Subșir?

PostgreSQL Funcția de subșir te ajută să exprimitract și returnează o parte dintr-un șir de caractere. În loc să returneze întregul șir de caractere, returnează doar o parte din acesta, ceea ce este util pentru reducerea codurilor și citirea câmpurilor cu lățime fixă.

Sintaxă

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

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

parametrii

Următorii parametri sunt utilizați cu funcția subșir:

şir Șirul sursă al cărui tip de date este varchar, char, șir etc.
poziție_de_pornire Un parametru opțional. Acesta indică locul unde extracțiunea șirului va începe. Dacă omiteți acest parametru, exemplultracțiunea începe de la poziția 1, care este primul caracter din șir.
lungime Un parametru opțional. Acesta indică numărul de caractere care vor fi exprimate.tracted din șir. Dacă omiteți acest parametru, funcția extracts de la poziția_starting până la sfârșitul șirului.

Exemple

În acest exemplu, vrem să exprimămtracprimele 4 caractere din cuvânt Guru99:

SELECT substring('Guru99' for 4);

Comanda va returna următoarele:

PostgreSQL Subșir

Nu am specificat poziția de pornire, așa că extracțiune a subșirului care a început la poziția 1. Patru caractere au fost exprimatetracted să returneze rezultatul 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 specificat că fostultracțiunea subșirului ar trebui să înceapă de la poziția 1 și ar trebui să fie exprimate 4 caracteretracted.

Să exprimămtract 99 din șir 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 care trebuie exprimatetracted nu a fost specificat, fostultracțiunea a alergat până la capătul șirului.

Iată un alt exemplu:

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

Comanda va returna următoarele:

PostgreSQL Subșir

Am început cu fostultracțiune la poziția 5 și 2 caractere au fost exprimatetracted.

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

PostgreSQL Tabelul Book subșir

Vrem să ne facem o idee aproximativă despre titlul fiecărei cărți. Putem extracdoar 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 Rezultat subșir

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

Potrivirea subșirurilor cu expresia regulată SQL

In PostgreSQL, poți extracun subșir care corespunde unei expresii regulate POSIX specificate. În acest caz, funcția subșir folosește 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, string și așa mai departe. matching_pattern este modelul 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; când este găsit, funcția subșir extracSunt doar două personaje.

Cum să potrivești subșiruri folosind pgAdmin

Acum să vedem cum se efectuează aceste acțiuni folosind pgAdmin. Interogările care nu necesită o bază de date pot fi executate direct din fereastra editorului de interogări. Pur și simplu faceți următoarele:

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

Pas 2) În 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 următoarea interogare în fereastra editorului.

SELECT substring('Guru99' for 4);

Pas 4) 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) Din bara de navigare din stânga, faceți clic pe Baze de date, apoi 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 Rezultat 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

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

Întrebări frecvente

SUBSTR este un alias mai scurt al lui SUBSTRING și returnează o parte a unui șir de caractere. SUBSTRING acceptă, de asemenea, cuvintele cheie FROM și FOR, standard SQL, plus expresii regulate POSIX, în timp ce SUBSTR acceptă doar argumente de poziție și lungime separate prin virgulă.

PostgreSQL SUBSTRING este un șir de caractere bazat pe unu, deci primul caracter se află la poziția 1, nu la 0. Transmiterea unei poziții inițiale de 1 returnează șirul de caractere de la primul său caracter încolo.

Când modelul POSIX nu se potrivește cu nimic, SUBSTRING returnează NULL în loc de un șir gol. Testarea rezultatului cu IS NULL vă permite să gestionați rândurile în care modelul așteptat lipsește.

Folosește o expresie regulată care capturează ce urmează după caracter. De exemplu, SUBSTRING(email FROM '@(.*)') returnează tot ce urmează după semnul @, oferindu-ți partea de domeniu a fiecărei adrese de e-mail.

Folosește SUBSTRING când ai nevoie de primul text corespondent ca valoare simplă. Alege regexp_matches() când dorești ca fiecare corespondență sau mai multe grupuri de captură să fie returnate ca o matrice, deoarece SUBSTRING returnează doar prima corespondență.

Asistenții AI, cum ar fi GitHub Copilot, transformă o descriere simplă în limba engleză într-un model POSIX, explică cu ce se potrivește fiecare token și sugerează șiruri de testare, ceea ce reduce procesul de încercare și eroare la construirea exemplelor de subșiruri.tracinterogări tion.

Da. Descrieți partea de text dorită, iar asistentul AI va redacta un apel SUBSTRING cu pozițiile corecte sau expresia regulată, pe care îl puteți rula și rafina în pgAdmin.

Da, potrivirea POSIX SUBSTRING este sensibilă la majuscule/minuscule în mod implicit. Pentru a potrivi indiferent de majuscule/minuscule, utilizați o valoare mai mică decât valoarea inițială, de exemplu SUBSTRING(lower(name) FROM lower(pattern)), astfel încât literele mari și minuscule să fie tratate la fel.

Rezumați această postare cu: