Oracle SQL je robustan jezik koji korisnicima pruža dalekosežnu kontrolu nad bazama podataka. Ovo uključuje mogućnost da se precizno diktira koliko rezultata upit vraća korištenjem naredbe LIMIT. Ovaj aspekt je posebno koristan kada imate posla sa velikim bazama podataka i potreban vam je samo određeni broj rezultata iz upita.
Naredba LIMIT je izborni dio naredbe SELECT. Omogućava vam da odaberete ograničen broj redova iz tabele. Kada se koristi sa vrijednošću OFFSET, naredba LIMIT pruža odličan način implementacije stranica. Mnoge relacijske baze podataka podržavaju klauzulu LIMIT kao što su MySQL, HSQL i PostgreSQL. Međutim, Oracle SQL to ne čini; ali postoji zaobilazno rješenje korištenjem rownum ili newrow klauzule za dohvat.
Kako ograničiti rezultate u Oracle SQL-u
Najčešći način ograničavanja rezultata u Oracle SQL-u je korištenje ROWNUM pseudo stupca ili klauzule za dohvaćanje reda, budući da tradicionalna naredba LIMIT ne postoji u Oracleu.
SELECT kolona
IZ (
SELECT kolona, ROWNUM red_broj
OD stola
WHERE broj_reda <= X ); [/code]
Objašnjenje Kodeksa
U gornjem kodu, naredba SELECT se inicijalno koristi za definiranje stupca koji će biti upitan. Nakon toga slijedi ugniježđeni odabir, unutar kojeg ponovo specificirate kolonu, ovaj put uz pseudo kolonu ROWNUM koju Oracle automatski dodjeljuje kako se redovi biraju, numerirajući od 1.
Zatim se koristi klauzula WHERE da diktira da se vraćaju samo redovi sa vrijednošću ROWNUM koja je manja ili jednaka navedenoj vrijednosti 'X'. Ovo u suštini ograničava broj redova koje daje upit na gornji X broj.
Alternativni metod – klauzula FETCH FIRST
Počevši od Oraclea 12c, Oracle je uveo klauzulu FETCH FIRST koja može zamijeniti klauzulu 'LIMIT' iz drugih SQL dijalekata.
[code lang=”Oracle SQL”]
SELECT kolona
OD stola
DOHVATI SAMO PRVI X REDOVA;
U ovom isječku, naredba FETCH FIRST se koristi nakon specificiranja kolone i tablice, nakon čega slijedi broj redova koje želite da vratite, s izrazom 'SAMO REDOVI' koji slijedi, što ukazuje da želite da sistem dohvati samo gornje X redove .
Koristeći oba, ROWNUM pseudo stupac ili novu klauzulu FETCH FIRST, Oracle SQL programeri imaju kontrolu nad precizno koliko linija vraća upit, nudeći fleksibilnost kada se bave značajnim skupovima podataka.
Zapamtite: Oracle ne podržava naredbu LIMIT koja se nalazi u nekim SQL dijalektima. Umjesto toga, morat ćete koristiti pseudokolunu ROWNUM ili klauzulu FETCH FIRST da biste ograničili rezultate.
