gpt4 book ai didi

java - SQL Server 2008 上的分页

转载 作者:行者123 更新时间:2023-11-29 05:25:31 27 4
gpt4 key购买 nike

我试图使用分页从 SQL SERVER 2008 中获取数据。

我的程序是:

CREATE PROC Paginate
@PageSize int, @PageNumber int
AS
Declare @RowStart int
Declare @RowEnd int
if @PageNumber > 0
Begin
SET @PageNumber = @PageNumber -1
SET @RowStart = @PageSize * @PageNumber + 1;
SET @RowEnd = @RowStart + @PageSize - 1 ;
With claim_user_info_paginate AS
( SELECT userNbr, userName,
ROW_NUMBER() OVER (order by userNbr) as UserNumber
FROM claim_user_info )
select *
from claim_user_info_paginate
Where UserNumber >= @RowStart and UserNumber <= @RowEnd
END

我需要连续获取记录,但上面的过程只返回前 10 条。在这种情况下,我应该怎么做才能使用 java 连续获取表中的所有记录。

我的java代码:

String sql="exec Paginate 10,1";
resultSet = statement.executeQuery(sql);

我试图循环查询,但我连续得到相同的结果。谁能说说我在哪里也做了更正。

最佳答案

使用这个表值函数:

ALTER FUNCTION [dbo].[GetPagedData] 
(
-- Add the parameters for the function here
@pagesize int,
@pageindex int
)
RETURNS TABLE
AS
RETURN
(

SELECT TOP (@pagesize) * ,Row_number() Over(order by a.ID) as count FROM
(
SELECT *,
ROW_NUMBER() OVER (ORDER BY ID) AS num
FROM dbo.Employees where IsActive=1
) AS a
WHERE num > @pageindex*@pagesize
)

这样使用从 dbo.GetPagedData(pagesize,pageindex) 中选择 *即从 dbo.GetPagedData(20,0) 选择 *注意:页面索引从0开始。

在 Java 中,通过每次递增 pageindex 来循环此函数。

关于java - SQL Server 2008 上的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20798072/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com