Binibigyang-daan kami ng Oracle SQL na manipulahin at pamahalaan ang data sa mga relational na database. Kasama sa mga karaniwang gawain ang pag-query ng data, paggawa ng mga talahanayan, at pagbuo ng mga kumplikadong gawain sa pagproseso ng data. Ang isang madalas na gawain na ginagawa ng mga developer sa SQL ay ang pagpili ng mga partikular na row mula sa isang talahanayan ng database. Minsan, maaaring kailanganin nating limitahan kung gaano karaming mga row ang pipiliin natin, kadalasan para sa mga dahilan ng pagganap. Bilang default, kapag sumulat ka ng "PUMILI" na pahayag sa Oracle SQL, kinukuha nito ang lahat ng mga hilera mula sa itinalagang talahanayan na nakakatugon sa iyong pamantayan. Ngunit paano kung ang unang 10 row lang ang gusto natin? Sa gabay na ito, ipapakita namin kung paano piliin lamang ang unang 10 row sa Oracle SQL.
PUMILI *
MULA SA (PUMILI *
MULA sa iyong_table
ORDER NG some_column)
SAAN ROWNUM <= 10; [/code]
Oracle SQL gumagamit ng espesyal na pseudo-column na tinatawag “ROWNUM” upang payagan ang mga developer na magsagawa ng mga operasyong tulad nito. Ang pseudo-column na ito ay nagbibigay sa amin ng bilang ng bawat row kapag ito ay nakuha, simula sa 1 at pataas hanggang sa gaano karaming mga row ang nasa query.
Detalyadong paliwanag ng code
Hatiin natin kung ano ang ibig sabihin ng query na ito.
[code lang="Oracle SQL"]
SELECT * FROM (SELECT * FROM your_table ORDER BY some_column)
Pinipili ng unang bahagi ng query ang lahat ng column mula sa iyong talahanayan at pinag-uuri-uriin ang mga ito ayon sa “some_column”. Inuuri namin ito dahil nakatalaga ang ROWNUM sa mga row pagkatapos ng pagkakasunud-sunod ayon sa sugnay at bago ang anumang pagsasala nagaganap.
SAAN ROWNUM <= 10; [/code] Ang pangalawang bahagi ng query ay kung saan papasok ang "ROWNUM" na pseudo-column. Karaniwang sinasabi nito sa Oracle na ibigay lamang sa amin ang mga row kung saan ang ROWNUM ay 10 o mas kaunti, kaya, ang unang 10 row. Ang isang mahalagang tala dito ay ang mga halaga ng ROWNUM ay itinalaga sa mga nakuhang hilera simula sa 1 at ang mga halaga ay hindi nakukuha hanggang matapos ang sugnay na "ORDER BY" ay ganap na naproseso.
ROWNUM at Pagganap
paggamit ROWNUM maaaring lubos na mapabuti ang pagganap, lalo na kapag nakikitungo sa malalaking halaga ng data. Hindi kailangang kunin ng Oracle ang lahat ng data mula sa disk at itago ang mga ito sa memorya bago ito magsimulang ibalik ang mga resulta. Maaari nitong ibalik ang mga resulta sa sandaling makuha nito ang unang 10 na tumutupad sa lahat ng kundisyon sa SQL command.
Mga Katulad na Pag-andar
Ang isang katulad na function sa ROWNUM sa Oracle SQL ay FETCH FIRST n ROWS LAMANG. Gayunpaman, ang sugnay na ito ay magagamit lamang sa Oracle 12c at mga susunod na bersyon.
[code lang="Oracle SQL"]
PUMILI *
MULA sa iyong_table
ORDER NG some_column
FETCH FIRST 10 ROWS LAMANG;
Sa pangkalahatan, ang Oracle SQL ay nagbibigay ng mga programmer ng ilang kapaki-pakinabang na pamamaraan upang limitahan ang bilang ng mga hilera na ibinalik ng isang SELECT query.