ALTER PROCEDURE [dbo].[getMessages]
-- Add the parameters for the stored procedure here
@lastRow int,
@sort varchar(9)
AS
BEGIN
-- Insert statements for procedure here
DECLARE @StartRow INT,@EndRow INT
SELECT @StartRow = (@lastRow + 1), @EndRow = (@lastRow + 6)
;WITH cte AS (SELECT ROW_NUMBER() OVER (ORDER BY
CASE WHEN @sort = 'votes1' THEN m.votes END DESC,
CASE WHEN @sort = 'votes2' THEN m.votes END ASC
) AS rows,
m.message,
m.messageId,
TotalCount = COUNT(m.messageId) OVER (PARTITION BY NULL)
FROM
tblMessages m
WHERE
m.deleted != 1
)
SELECT *
FROM cte WHERE ROWS BETWEEN @StartRow AND @EndRow
ORDER BY rows
END
これは私が最後の行に渡すことができるフロントエンドでページングに使用する私のprocであり、次に "load more"をクリックすると、次の行を取得し、次の6を取得します。前の6はIDを渡すので、6を表示する場合は次の6に移動し、前の6をもう一度表示します。T-SQLでのページング
どうすればこのprocを修正できますか?
なぜ近い投票ですか? – slandau
私はそうではありませんでしたが、誰かがSQL関連の質問を閉じることに投票していることに気づいています。ありがたいことに5票を要しますが、私はその行動についての改造者にメッセージを送るようになりました(今日2回目)。 –
おそらく彼らはxmlでやっていることを好むかもしれません...;) – NotMe