Tack digitalUnit !
Det funkar utmärkt. Använde inte PROCEDURES men blev inspirerad av den SQL som stod överst på sidan
När jag vill ha rad 200..300:
Hämta Rad 0..300, vänd på det, och hämta de 100 första raderna vilka du sedan vänder igen:
Kod:
SELECT * FROM (
* *SELECT TOP 100 * FROM (
* * * *SELECT TOP 300 * FROM tabell WHERE någonting='något' ORDER BY fält1 ASC, fält2 ASC, fält3 ASC
* * * *) AS SUBSEL ORDER BY SUBSEL.fält1 DESC, SUBSEL.fält2 DESC, SUBSEL.fält3 DESC
* * ) AS PAGESEL ORDER BY PAGESEL.fält1 ASC, PAGESEL.fält2 ASC, PAGESEL.fält3 ASC
Funkar utmärkt. Testat med 250 rader med 5 rader per sida. Även testat med 15 per sida. Funkar med alla rader i rätt ordning... !
Fantastiskt...
EDIT: Detta, tillsammans med min cachningsfunktion har gjort det hela märkbart snabbare... :-)