17. okt 2008

MSSQL : ja limit ?

Mysql sõbrad teavad, et limit käsk aitab neid alati. Limit 0,5 ... esimene offset teine mitu kirjet peale seda. Kuigi Mssqli pean ühte lihtsamaks ning võimsamaks andmebaasiks on seal ka natuke puudusi, just see sama limit. Tahad teha lehekülgi, kus kirjed kuvatud vahemike kaupa, tüüpiline veebinduse teema.

select top 45 * from kliendid top annaks lihtsalt esimesed 45 klienti vastavalt sorteeringule.

Kuidas ikka saada kirjete vahemikud ilma temptabeleid ja muud keemiat kasutamata.


select b.recnr,b.kliendi_id,b.eesnimi,b.perekonnanimi
from
(select top 1000 row_number() over (order by perekonnanimi asc) recnr,kliendi_id,eesnimi,perekonnanimi
from meiekliendid) as b
where b.recnr between 1 and 50

üldiselt over klauslis peate määrama mille järgi on sorteeritud subselect !

That's It!

Kommentaare ei ole: