2016-03-25 23 views
0

ユーザーに情報を検索させ、グリッドに入力できる検索画面があります。検索結果の中には大量のデータが返されているものもあります。私はページンググリッドを作成しようとしているので、ストアプロシージャから一度に10または20の結果しか得られません。私はこのような何かをしようとしています特定の範囲の間でsybase ASEの結果が制限されます

(私はすでに、UIにおけるページンググリッドを持っている):

select * from wl_eval limit 1, 20 

問合せは、上記の最初の20件のレコードを返します。 Sybase ASEでどのように達成できますか?残念ながら、クライアントプロジェクトではSybaseを使用しています。他のデータベースエンジンでは、上記のクエリを使用できたことはわかっています。私はまたSET ROW COUNT 20を使うことができると知っていますが、30から50といった特定の範囲を望むなら、これはうまくいきません。

何か考えていますか?

答えて

0

numberofrecordsあなたは

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を(返したいTOPの追加は)私のために働いていません – Erick

0
SELECT TOP 20 <column list> 
FROM YourTable 
ORDER BY <list> 
関連する問題