Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Simulacija LIMIT(Mysql) klauzule -- quick and dirty

[es] :: Oracle :: Simulacija LIMIT(Mysql) klauzule -- quick and dirty

[ Pregleda: 3687 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

_owl_

Član broj: 318
Poruke: 1043
*.drenik.net



+3 Profil

icon Simulacija LIMIT(Mysql) klauzule -- quick and dirty15.07.2004. u 23:54 - pre 240 meseci
Ako nekome ikad zatreba da simulira LIMIT klauzuli iz MySQL-a postoji resenje po ceni brzine izvrsavanja upita. Ceo rezultat SELECT naredbe treba grupisati po pseudokoloni ROWNUM a onda dodati HAVING klauzulu tipa
Code:

HAVING ROWNUM BETWEEN :start AND :end

Posto se GROUP BY (a samim tim i HAVING) procesira posle selektovanja redova moguce je koristiti izraze u kojima se trazi da je vrednost kolone ROWNUM veca od 1 (sto nije slucaj kada se isti takav izraz koristi u WHERE klauzuli)


Owl
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Simulacija LIMIT(Mysql) klauzule -- quick and dirty16.07.2004. u 18:20 - pre 240 meseci
LIMIT se moze takodje simulirati i po principu Top-N-Analyse:

Pokazacu na primjeru, koji se radi na kursu, koristeci tabelu employees, tako da selektujem 3 osobe koje najvise zaradjuju:
Code:

SELECT ROWNUM AS "Rank", first_name||' '||last_name AS "Ime i prezime", salary AS "Plata"
FROM (SELECT first_name, last_name, salary FROM employees ORDER BY salary DESC)
WHERE ROWNUM <= 3;

Ovaj sub-select (SELECT first_name, last_name, salary FROM employees ORDER BY salary DESC) oznacava "Inline-View", kojim selektujemo zeljene podatke i sortiramo po koloni salary. Iz tog rezultata, odabiremo samo 3 osobe koje najvise zaradjuju, koristeci WHERE klauzulu i ROWNUM internu pseudo-kolumnu koja svakom recordu iz sub-selecta dodjeljuje jednu sekvencijalnu vrijednost pocevsi od 1.
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.vdial.verat.net



+3 Profil

icon Re: Simulacija LIMIT(Mysql) klauzule -- quick and dirty16.07.2004. u 20:05 - pre 240 meseci
Da, da ovakvo resenje sam procitao negde u dokumentaciji ali sam bio zaboravio na njega. Inace ono sto sam ja predlozio radi samo za upite u kojima se ne koristi GROUP BY.
Owl
 
Odgovor na temu

CandyMan

Član broj: 3420
Poruke: 147



+49 Profil

icon Re: Simulacija LIMIT(Mysql) klauzule -- quick and dirty20.07.2004. u 07:13 - pre 240 meseci
Pogledajte temu

http://www.elitesecurity.org/tema/53420

Predlažem ovo samo kao ideju, jer rownum nije cross-platform. Performanse su katastrofa, naravno...
Nisam ni znao da znam dok nisam prob'o!
 
Odgovor na temu

[es] :: Oracle :: Simulacija LIMIT(Mysql) klauzule -- quick and dirty

[ Pregleda: 3687 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.