Hur gör jag om jag bara vill ha upp fem poster på min sida från en databas. SELECT TOP 5 xxx FROM tabell ORDER BY ...visa bara 5 poster...
Jag loopar den nu men då får jag ju upp alla...Sv: visa bara 5 poster...
Om du har SQL Server som databas och det inte spelar någon roll vilka 5 poster du får upp, utan det går bra att få de 5 första som SQL Server hittar kan man använda SET-kommandot ROWCOUNT enligt nedan:
SET ROWCOUNT 5
SELECT xxx FROM tabell
SET ROWCOUNT 0 -- för att återställa rowcount till oändligt
Om man t ex lägger ett clustered index på tabellen så att raderna ligger ordnade på det sätt man normalt frågar efter dem så kan man vinna lite prestanda så här. Anledningen är att för att relationsmotorn ska kunna välja ut TOP 5 så måste den läsa upp ett rowset med alla de rader som stämmer på frågan, sortera dem i den ordning man angivit och slutligen välja ut de 5 första. Med ROWCOUNT satt till 5 kommer den istället bara att köra frågan som vanligt, fast sluta läsa efter 5 rader.