PostgreSQL SUBSTRING() funktsioon koos regexi näitega

⚡ Nutikas kokkuvõte

PostgreSQL SUBSTRING nttracts ja tagastab stringi osa, kasutades valikulist alguspositsiooni ja pikkust, ning otsib tekstist vastet POSIX-i regulaaravaldisega, et leida mustreid, näiteks numbreid või koode.

  • ???? süntaksit: substring(string [algusest] [pikkuse jaoks] ) tagastab osa lähtetekstist.
  • 1️⃣ Positsioonid: Tähemärkide positsioonid algavad numbrist 1 ja pikkust märkimata jättes loetakse need stringi lõpuni.
  • 🔎 Regulaaravaldis: SUBSTRING(string FROM muster) nttracts esimene POSIX-i regulaaravaldisele vastav tekst.
  • 🧮 Grouping: Mustris olev sulgudes rühm tagastab ainult selle vaste osa.
  • 🖥️ pgAdmin: Iga alamstringi päring töötab pgAdmin päringuredaktoris ühtemoodi.
  • 🤖 Tehisintellekti abi: Tehisintellekti assistendid genereerivad ja selgitavad täpse alamstringi jaoks regulaaravaldiste mustreidtracmise kohta.

PostgreSQL SUBSTRING funktsioon regulaaravaldisega

Mis on PostgreSQL Alamstring?

. PostgreSQL alamstringi funktsioon aitab teil extract ja tagastab osa stringist. Terve stringi tagastamise asemel tagastab see ainult osa sellest, mis on kasulik koodide kärpimiseks ja fikseeritud laiusega väljade lugemiseks.

Süntaks

. PostgreSQL alamstringi funktsioon võtab järgmise süntaksi:

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

parameetrid

Substringi funktsiooniga kasutatakse järgmisi parameetreid:

nöör Lähtestring, mille andmetüüp on varchar, char, string jne.
stardipositsioon Valikuline parameeter. See tähistab kohta, kus extracstringi täitmine algab. Kui see parameeter välja jätta, siistractsioon algab positsioonilt 1, mis on stringi esimene märk.
pikkus Valikuline parameeter. See tähistab märkide arvu, mida tuleb ex-is kuvada.tracstringist. Kui see parameeter välja jätta, siis funktsioon extracts alates alguspositsioonist kuni stringi lõpuni.

Näited

Selles näites tahame teha järgmisttracsõna esimesed 4 tähemärki Guru99:

SELECT substring('Guru99' for 4);

Käsk tagastab järgmise:

PostgreSQL Alamstring

Me ei täpsustanud stardipositsiooni, seega ekstracAlamstringi alguspunkt oli 1. Neli tähemärki olid välja toodudtracpalus ülaltoodud tulemuse tagastada.

Järgmine näide näitab, kuidas määrata lähtepositsioon:

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

Käsk tagastab järgmise:

PostgreSQL Alamstring

Me täpsustasime, et endinetracAlamstringi algus peaks algama 1. positsioonilt ja 4 tähemärki peaksid olema järgmised.tractatud.

Olgem näitekstract 99 stringist Guru99:

SELECT substring('Guru99' from 5);

Käsk tagastab järgmise:

PostgreSQL Alamstring

Alguspositsiooniks määrasime 5. Kuna arvutatavate märkide arvtracTedi ei täpsustatud, ekstractsioon jooksis nööri lõppu.

Siin on veel üks näide:

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

Käsk tagastab järgmise:

PostgreSQL Alamstring

Me alustasime enditrac5. positsioonil ja 2 tähemärki olid välja arvatudtractatud.

Mõelge allolevale raamatutabelile:

PostgreSQL Alamstringi raamatute tabel

Me tahame saada ligikaudse ettekujutuse iga raamatu nimest. Me saame näitekstracainult tabeli nimeveeru esimesed 15 tähemärki:

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

Käsk tagastab järgmise:

PostgreSQL Alamstringi tulemus

Meil on nüüd ligikaudne ettekujutus iga raamatu nimest.

Alamstringide sobitamine SQL-i regulaaravaldisega

In PostgreSQL, saate nttracta alamstring, mis vastab määratud POSIX-i regulaaravaldisele. Sel juhul kasutab alamstringi funktsioon järgmist süntaksit:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

Siin on ülaltoodud parameetrite selgitus. Sõne on lähtetekst, mille andmetüüp on varchar, char, string jne. matching_pattern on muster, mida kasutatakse stringis otsimiseks.

Näited

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

Käsk tagastab järgmise:

Alamstringide sobitamine SQL-i regulaaravaldisega

Meie sisendtekst on Teie vanus on 22. Mustris otsime numbrilist mustrit; kui see leitakse, siis alamtekst funktsioon extracainult kaks tähemärki.

Kuidas alamstringe pgAdmini abil sobitada

Vaatame nüüd, kuidas neid toiminguid pgAdmini abil teostatakse. Päringuid, mis ei vaja andmebaasi, saab otse päringuredaktori aknast käivitada. Tehke lihtsalt järgmist:

Step 1) Logige sisse oma pgAdmini kontole.

Step 2) Klõpsake pgAdminis päringutööriista ikooni.

Alamstringide sobitamine pgAdmini abil

Avaneb päringuredaktori aken.

Step 3) Tippige redaktoriaknasse järgmine päring.

SELECT substring('Guru99' for 4);

Step 4) Päringu täitmiseks klõpsake ikooni Käita.

Alamstringide sobitamine pgAdmini abil

Step 5) Päringu täitmine on lõppenud. See peaks tagastama järgmise:

Alamstringide sobitamine pgAdmini abil

Näide 2:

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

See peaks tagastama järgmise:

Alamstringide sobitamine pgAdmini abil

Siin on järgmine näide:

SELECT substring('Guru99' from 5);

See peaks tagastama järgmise:

Alamstringide sobitamine pgAdmini abil

Näide 3:

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

See peaks tagastama järgmise:

Alamstringide sobitamine pgAdmini abil

Nüüd käivitame näite, kasutades demo andmebaasi Book tabelit:

Step 1) Logige sisse oma pgAdmini kontole.

Step 2) Klõpsake vasakpoolsel navigeerimisribal valikut Andmebaasid ja seejärel valikut Demo.

Alamstringide sobitamine pgAdmini abil

Step 3) Sisestage päring päringuredaktorisse:

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

Step 4) Klõpsake nuppu Käivita.

Alamstringide sobitamine pgAdmini abil

See peaks tagastama järgmise:

PostgreSQL Alamstringi tulemus

Nüüd on meil põhiline ettekujutus iga raamatu nimest.

Alamstringide sobitamine SQL-i regulaaravaldisega

Sama saavutamiseks pgAdminis tehke järgmist.

Step 1) Logige sisse oma pgAdmini kontole.

Step 2) Klõpsake päringutööriista ikoonil.

Alamstringide sobitamine SQL-i regulaaravaldisega

Avaneb päringuredaktori aken.

Step 3) Tippige redaktoriaknasse järgmine päring.

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

Step 4) Päringu täitmiseks klõpsake ikooni Käita.

Alamstringide sobitamine SQL-i regulaaravaldisega

See peaks tagastama järgmise:

Alamstringide sobitamine SQL-i regulaaravaldisega

Laadige alla selles õpetuses kasutatud andmebaas

KKK

SUBSTR on SUBSTRINGi lühem alias ja tagastab osa stringist. SUBSTRING toetab ka SQL-standardile vastavaid märksõnu FROM ja FOR ning POSIX-i regulaaravaldisi, samas kui SUBSTR aktsepteerib ainult komaga eraldatud positsiooni ja pikkuse argumente.

PostgreSQL SUBSTRING on ühespõhine, seega esimene märk asub positsioonil 1, mitte 0. Alguspositsiooni 1 edasiandmine tagastab stringi esimesest märgist alates.

Kui POSIX-muster ei leia vastet, tagastab SUBSTRING tühja stringi asemel NULL-i. Tulemuse testimine funktsiooniga IS NULL võimaldab teil käsitleda ridu, kus oodatav muster puudub.

Kasutage regulaaravaldist, mis jäädvustab märgile järgneva osa. Näiteks SUBSTRING(email FROM '@(.*)') tagastab kõik pärast @-märki oleva osa, andes teile iga e-posti aadressi domeeniosa.

Kasuta SUBSTRING funktsiooni, kui vajad esimest sobivat teksti lihtsa väärtusena. Vali regexp_matches(), kui soovid, et iga sobivus või mitu püüdmisrühma tagastataks massiivina, kuna SUBSTRING tagastab ainult esimese sobivuse.

Tehisintellekti assistendid, näiteks GitHub Copilot, muudavad lihtsa ingliskeelse kirjelduse POSIX-mustriks, selgitavad, millele iga märk vastab, ja pakuvad välja teststringe, mis vähendab katse-eksituse meetodit alamstringi loomisel.tracpäringud.

Jah. Kirjeldage soovitud tekstiosa ja tehisintellekti assistent koostab õigete positsioonide või regulaaravaldisega SUBSTRING-päringu, mida saate pgAdminis käivitada ja täpsustada.

Jah, POSIX SUBSTRINGi vastendamine on vaikimisi tõstutundlik. Suur- ja väiketähtedest olenemata vaste tegemiseks sisestage mõlemad sisendid madalamaks, näiteks SUBSTRING(lower(nimi) FROM lower(muster)), nii käsitletakse suur- ja väiketähti ühtemoodi.

Võta see postitus kokku järgmiselt: