Nalutas: split string

Huling pag-update: 09/20/2023

Kapag nagtatrabaho sa mga database, isang karaniwang gawain ang manipulahin at pag-aralan ang data upang makakuha ng mga kapaki-pakinabang na insight. Kadalasan, kasama nito ang pagharap sa mga string, lalo na ang paghahati sa mga ito batay sa ilang mga delimiter. Sa Oracle SQL, mayroong iba't ibang mga paraan upang maisakatuparan ito sa pamamagitan ng iba't ibang mga function at mga code ng pamamaraan. Sa artikulong ito, tatalakayin namin ang isang komprehensibong solusyon sa paghahati ng string gamit ang Oracle SQL. Tatalakayin natin ang konsepto, ang solusyon, at hatiin ang code nang hakbang-hakbang para sa mas mahusay na pag-unawa.

Paghahati ng mga String sa Oracle SQL

Sa Oracle SQL, maaaring gawin ang isang string split gamit ang wikang PL/SQL o sa pamamagitan ng mga query sa SQL na puno ng mga built-in na function o mga espesyal na operator. Ngunit ang pinakakaraniwang ginagamit na paraan ay ang paggamit ng mga likas na pag-andar ng REGEXP_SUBSTR function, na kumakatawan sa Regular Expression Substrings. Nagbibigay ito ng intuitive at mahusay na paraan upang makitungo sa mga string. Kasabay nito, pinapayagan din nito ang paggamit ng mga regular na expression upang tukuyin ang mas tiyak na mga pattern na hahanapin sa mga string.

Solusyon: Gamit ang REGEXP_SUBSTR Function

MAGPAHAYAG
str VARCHAR2(100):= 'Oracle,SQL,String,Split';
reslt VARCHAR2(100);
BEGIN
FOR i IN 1..LENGTH(str)-LENGTH(REPLACE(str,',',”))+1
LOOP
reslt := REGEXP_SUBSTR(str, '[^,]+', 1, i);
dbms_output.put_line(reslt);
END LOOP;
END;

Paliwanag sa Code

Una, idineklara namin ang dalawang variable: isa para hawakan ang input string at isa pa para makuha ang bawat split segment ng string. Kasunod nito, ang isang loop ay nagsimulang umulit sa bawat seksyon ng string. Ang ideya ay hatiin ang string sa bawat kuwit at pagkatapos ay i-print ang bawat segment.

REGEXP_SUBSTR ay hinihingi sa loob ng loop upang tumugma sa isang pattern sa bawat segment, simula sa unang posisyon ng bawat segment at tumutugma sa isang pangyayari sa isang pagkakataon. Sa partikular, ang '[^,]+' ay isang regular na expression na tumutugma sa isa o higit pang paglitaw ng anumang character maliban sa isang kuwit. Ang bawat katugmang segment ay ipi-print out gamit ang dbms_output.put_line utos.

Iba pang Mga Kapaki-pakinabang na String Function sa Oracle SQL

Bilang karagdagan sa REGEXP_SUBSTR, nagbibigay ang Oracle SQL ng ilang iba pang makapangyarihang function para sa pagmamanipula ng string:

  • SUBSTR: Ibinabalik ang isang bahagi ng string, simula sa isang partikular na posisyon.
  • PALITAN: Pinapalitan ang lahat ng paglitaw ng isang tinukoy na string.
  • ISALIN: Nagsasalin ng mga indibidwal na character sa isang string sa iba pang mga character.
  • INSTR: Ibinabalik ang lokasyon ng isang substring sa isang string.

Ang pag-master ng mga function na ito ay maaaring lubos na mapataas ang iyong kahusayan kapag nakikitungo sa mga operasyon ng string sa Oracle SQL. Hindi lamang sila nagbibigay ng mga simpleng solusyon ngunit nagbibigay-daan din sa iyo na gamitin ang likas na kakayahan ng wikang Oracle SQL para sa pagmamanipula at pagsusuri ng data.

Kaugnay na mga post:

Mag-iwan ng komento