PostgreSQL SUBSTRING() funkcija s primjerom regularnog izraza

⚡ Pametni sažetak

PostgreSQL SUBSTRING extracts vraća dio niza, koristeći opcionalnu početnu poziciju i duljinu, a također uspoređuje tekst s POSIX regularnim izrazom kako bi izvukla uzorke poput brojeva ili kodova.

  • 📋 Sintaksa: podniz(niz [od početka] [za duljinu]) vraća dio izvornog niza.
  • 1️⃣ pozicije: Pozicije znakova počinju od 1, a izostavljanjem duljine čita se do kraja niza.
  • 🔎 Regularni izraz: SUBSTRING(niz IZ uzorka) npr.tracts prvi tekst koji odgovara POSIX regularnom izrazu.
  • 🧮 Grouping: Grupa u zagradama u uzorku vraća samo taj zabilježeni dio podudaranja.
  • 🖥️ pgAdmin: Svaki upit podniza izvršava se na isti način unutar pgAdmin editora upita.
  • 🤖 Pomoć za umjetnu inteligenciju: AI asistenti generiraju i objašnjavaju regularne izraze za točan podniz extraction.

PostgreSQL Funkcija SUBSTRING s regularnim izrazom

Što je PostgreSQL Podniz?

The PostgreSQL Funkcija podniza vam pomaže da extract i vraća dio niza. Umjesto vraćanja cijelog niza, vraća samo njegov dio, što je korisno za skraćivanje kodova i čitanje polja fiksne širine.

Sintaksa

The PostgreSQL funkcija podniza ima sljedeću sintaksu:

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

Parametri

Sljedeći parametri se koriste s funkcijom substring:

niz Izvorni niz čiji je tip podataka varchar, char, string itd.
početni_položaj Neobavezni parametar. Označava mjesto gdje se extracIzrada niza će započeti. Ako izostavite ovaj parametar, extracPočetak niza počinje od pozicije 1, što je prvi znak u nizu.
dužina Neobavezni parametar. Označava broj znakova koji će se prikazati.traciz niza. Ako izostavite ovaj parametar, funkcija extracts od početne_pozicije do kraja niza.

Primjeri

U ovom primjeru želimo objasnititracprva 4 znaka iz riječi Guru99:

SELECT substring('Guru99' for 4);

Naredba će vratiti sljedeće:

PostgreSQL Podniz

Nismo odredili početnu poziciju, pa je bivšitracPočelo je na poziciji 1. Četiri znaka su izostavljenatracpotrebno je vratiti gornji rezultat.

Sljedeći primjer pokazuje kako odrediti početnu poziciju:

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

Naredba će vratiti sljedeće:

PostgreSQL Podniz

Naveli smo da bivšitracPodniz treba započeti od pozicije 1, a 4 znaka trebaju biti extracted.

Neka nam budetract 99 iz niza Guru99:

SELECT substring('Guru99' from 5);

Naredba će vratiti sljedeće:

PostgreSQL Podniz

Početnu poziciju smo odredili kao 5. Budući da je broj znakova koje treba prikazatitracted nije bio naveden, bivšitraccija je išla do kraja niza.

Evo još jednog primjera:

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

Naredba će vratiti sljedeće:

PostgreSQL Podniz

Započeli smo bivši/bivšatraccija na poziciji 5, a 2 znaka su bila izostavljenatracted.

Razmotrite donju tablicu knjiga:

PostgreSQL Tablica knjige podnizova

Želimo dobiti okvirnu ideju o nazivu svake knjige. Možemo npr.tracsamo prvih 15 znakova iz stupca s imenom u tablici:

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

Naredba će vratiti sljedeće:

PostgreSQL Rezultat podniza

Sada imamo okvirnu ideju o nazivu svake knjige.

Usklađivanje podnizova sa SQL regularnim izrazom

In PostgreSQL, možeš bivšitracpodniz koji odgovara određenom POSIX regularnom izrazu. U ovom slučaju, funkcija podniza koristi sljedeću sintaksu:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

Evo objašnjenja gore navedenih parametara. Niz je izvorni niz, čiji tip podataka je varchar, char, string i tako dalje. Matching_pattern je uzorak koji se koristi za pretraživanje u stringu.

Primjeri

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

Naredba će vratiti sljedeće:

Usklađivanje podnizova sa SQL regularnim izrazom

Naš ulazni niz je Vaša dob je 22. U uzorku tražimo numerički uzorak; kada ga pronađe, funkcija podniza extracsamo dva znaka.

Kako uskladiti podnizove pomoću pgAdmin-a

Sada pogledajmo kako se ove radnje izvode pomoću pgAdmin-a. Upiti koji ne trebaju bazu podataka mogu se izvršiti izravno iz prozora uređivača upita. Samo učinite sljedeće:

Korak 1) Prijavite se na svoj pgAdmin račun.

Korak 2) Na pgAdminu kliknite ikonu Alata za upite.

Podudaranje podnizova pomoću pgAdmin-a

Otvorit će se prozor uređivača upita.

Korak 3) U prozor editora upišite sljedeći upit.

SELECT substring('Guru99' for 4);

Korak 4) Pritisnite ikonu Izvrši da biste izvršili upit.

Podudaranje podnizova pomoću pgAdmin-a

Korak 5) Izvršavanje upita je završeno. Trebao bi vratiti sljedeće:

Podudaranje podnizova pomoću pgAdmin-a

Primjer 2:

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

Trebao bi vratiti sljedeće:

Podudaranje podnizova pomoću pgAdmin-a

Evo sljedećeg primjera:

SELECT substring('Guru99' from 5);

Trebao bi vratiti sljedeće:

Podudaranje podnizova pomoću pgAdmin-a

Primjer 3:

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

Trebao bi vratiti sljedeće:

Podudaranje podnizova pomoću pgAdmin-a

Sada pokrenimo primjer pomoću tablice Book Demo baze podataka:

Korak 1) Prijavite se na svoj pgAdmin račun.

Korak 2) Na navigacijskoj traci s lijeve strane kliknite Baze podataka, a zatim kliknite Demo.

Podudaranje podnizova pomoću pgAdmin-a

Korak 3) Unesite upit u uređivač upita:

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

Korak 4) Pritisnite gumb Izvrši.

Podudaranje podnizova pomoću pgAdmin-a

Trebao bi vratiti sljedeće:

PostgreSQL Rezultat podniza

Sada imamo osnovnu ideju imena svake knjige.

Usklađivanje podnizova sa SQL regularnim izrazom

Da biste postigli isto na pgAdmin-u, učinite sljedeće:

Korak 1) Prijavite se na svoj pgAdmin račun.

Korak 2) Kliknite ikonu Alata za upite.

Usklađivanje podnizova sa SQL regularnim izrazom

Otvorit će se prozor uređivača upita.

Korak 3) U prozor editora upišite sljedeći upit.

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

Korak 4) Pritisnite ikonu Izvrši da biste izvršili upit.

Usklađivanje podnizova sa SQL regularnim izrazom

Trebao bi vratiti sljedeće:

Usklađivanje podnizova sa SQL regularnim izrazom

Preuzmite bazu podataka korištenu u ovom vodiču

Pitanja i odgovori

SUBSTR je kraći alias od SUBSTRING i vraća dio niza. SUBSTRING također podržava SQL-standardne ključne riječi FROM i FOR plus POSIX regularne izraze, dok SUBSTR prihvaća samo argumente pozicije i duljine odvojene zarezima.

PostgreSQL SUBSTRING se temelji na jedinici, tako da se prvi znak nalazi na poziciji 1, a ne 0. Prosljeđivanje početne pozicije 1 vraća niz od prvog znaka nadalje.

Kada POSIX uzorak ne odgovara ničemu, SUBSTRING vraća NULL umjesto praznog niza. Testiranje rezultata s IS NULL omogućuje vam rukovanje retcima gdje očekivani uzorak nedostaje.

Koristite regularni izraz koji obuhvaća ono što slijedi znak. Na primjer, SUBSTRING(email FROM '@(.*)') vraća sve nakon znaka @, dajući vam dio domene svake adrese e-pošte.

Koristite SUBSTRING kada vam je potreban prvi odgovarajući tekst kao jednostavna vrijednost. Odaberite regexp_matches() kada želite da se svako podudaranje ili više grupa za snimanje vrati kao niz, budući da SUBSTRING vraća samo prvo podudaranje.

AI asistenti poput GitHub Copilota pretvaraju opis na jednostavnom engleskom jeziku u POSIX uzorak, objašnjavaju čemu odgovara svaki token i predlažu testne nizove, što smanjuje pokušaje i pogreške pri izgradnji podniza extracupiti o ciji.

Da. Opišite dio teksta koji želite, a AI asistent će izraditi SUBSTRING poziv s ispravnim pozicijama ili regularnim izrazom, koji možete pokrenuti i poboljšati unutar pgAdmin-a.

Da, POSIX SUBSTRING podudaranje je prema zadanim postavkama osjetljivo na velika i mala slova. Za podudaranje bez obzira na velika i mala slova, smanjite oba ulaza, na primjer SUBSTRING(lower(name) FROM lower(pattern)), tako da se velika i mala slova tretiraju isto.

Sažmite ovu objavu uz: