» »

[SQL] top x do top y

[SQL] top x do top y

urbecar ::

Baza Access 2002. Rad bi pridobival iz tabele po 5 zapisov naenkrat urejenih po velikosti. Zapisi pa bi si sledili po velikosti polja "ocena". Tako bi privič rad dobil zapise z 1,2,3,4,5 mesta glede na oceno, naslednjič iz 6,7,8,9,10 .....

zaenkrat imam tole kodo
if (index ==0)
{sql ="SELECT TOP 5 slike.* FROM slike ORDER BY slike.ocena DESC";}

else 
{
sql ="SELECT TOP " + (index+5).ToString() + " slike.* "
	+"FROM slike "
	+"WHERE (((slike.id) Not In (SELECT Top "
        + index.ToString()+" slike.id FROM slike "
	+"ORDER BY slike.ocena DESC))) "
	+"ORDER BY slike.ocena DESC";
					
}

Koda dela lepo. Pride pa hakeljc če imajo vse slike enako oceno (recimo "ocena"=0). Pote mi drugi sql (tisti pod else) ne vrne nič.

Ali obstaj kakšna varianta , ki porpravila to napako?

OwcA ::

Če nimaš ogromno slik je verjetno cenejše, če si nagrabiš vse in nepotrebne zavržeš "zunaj" (v -- ugibam -- #C).
Otroška radovednost - gonilo napredka.

urbecar ::

Torej v JET-u ne obstaja kak spodoben ekvivalent LIMIT-u?

zerox ::

Če sortiraš po nekem ključu, ki se lahko ponavlja, potem bi jaz naredil tako:

SELECT TOP 2 *
FROM (SELECT TOP 5 * FROM test order by b,id DESC) as T
ORDER BY b,id ASC

id je mora biti unikaten, b pa jeneko polje podobno tvoji oceni (torej se lahko ponavlja). Prva 2ka v selectu predstavlja število prikazanih rezultatov, druga številka 5 pa predstavlja odmik (seveda od zadaj naprej :)). Če to predelaš za svoje potrebe bi moralo delovati vsaj v t-sql deluje ... JET pa je po mojem podoben


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

SQL vprašanje

Oddelek: Programiranje
81055 (654) MrStein
»

(Access) query po datumu

Oddelek: Programiranje
211869 (1444) imagodei
»

random funkcija access

Oddelek: Programiranje
101255 (1120) ToniT
»

ASP: izbrati samo zadnji zapis

Oddelek: Izdelava spletišč
5891 (819) swalow
»

En enostaven querry v MySQL :(

Oddelek: Programiranje
141400 (1201) krneki0001

Več podobnih tem