2016-03-25 12 views
0

Ich habe einen Suchbildschirm, mit dem der Benutzer Informationen suchen kann und es füllt ein Raster. Einige der Suchergebnisse geben eine große Menge an Daten zurück. Ich versuche, ein Paging-Grid zu erstellen, so dass ich nur aus dem Speichervorgang 10 oder 20 Ergebnisse zu einem Zeitpunkt bringen. (Ich habe bereits ein Paging-Gitter in der UI)Begrenzung der Ergebnisse in Sybase ASE zwischen einem bestimmten Bereich

Ich versuche, so etwas zu tun:

select * from wl_eval limit 1, 20 

Die obige Abfrage wird wieder nur die ersten 20 Treffer. Wie könnte ich das in Sybase ASE erreichen? Leider verwenden wir für mein Kundenprojekt Sybase. Ich weiß, dass wir in anderen Datenbank-Engines die oben erwähnte Abfrage hätten verwenden können. Ich weiß auch, dass wir SET ROW COUNT 20 verwenden können, aber das funktioniert nicht, wenn ich einen bestimmten Bereich möchte, sagen wir von 30 bis 50.

Irgendwelche Gedanken?

Antwort

0

hinzufügen TOP numberofrecords Sie

DECLARE @intStartRow int; 
DECLARE @intEndRow int; 

SET @intStartRow = (@intPage -1) * @intPageSize + 1; 
SET @intEndRow = @intPage * @intPageSize;  

WITH wl_eval AS 
(SELECT field, 
ROW_NUMBER() OVER(ORDER BY intID DESC) as intRow, 
COUNT(intID) OVER() AS intTotalHits 
    FROM tblBlog) 
SELECT field, intTotalHits FROM wl 
WHERE intRow BETWEEN @intStartRow AND @intEndRow 
+0

ROW_NUMBER() funktioniert nicht für mich zurückkehren wollen – Erick

0
SELECT TOP 20 <column list> 
FROM YourTable 
ORDER BY <list>