谁能帮我写一个JSP分页的SQL语句,进行详解一下啊!

 我来答
时光sunngo
2011-03-19 · TA获得超过801个赞
知道小有建树答主
回答量:985
采纳率:0%
帮助的人:486万
展开全部
建立表:
CREATE TABLE [TestTable] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Country] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Note] [nvarchar] (2000) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

插入数据:(100万条)
SET IDENTITY_INSERT TestTable ON
declare @i int
set @i=1
while @i<=1000000
begin
insert into TestTable([id], FirstName, LastName, Country,Note) values(@i, 'FirstName_XXX','LastName_XXX','Country_XXX','Note_XXX')
set @i=@i+1
end
SET IDENTITY_INSERT TestTable OFF

------------------------------------
分页方案一:(利用Not In和SELECT TOP分页)

当前页数从0编号

(默认ASC排序)
//当前页数=0时用SQL:
SELECT TOP 每页记录数 *
FROM TestTable
ORDER BY ID

//当前页数>0时用SQL:
SELECT TOP 每页记录数 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 每页记录数*当前页数 id //当前页数必须>0
FROM TestTable
ORDER BY id))
ORDER BY ID
**************************
用DESC排序时,需要改成:
//当前页数=0时用SQL:
SELECT TOP 每页记录数 *
FROM TestTable
ORDER BY ID DESC

//当前页数>0时用SQL:
SELECT TOP 每页记录数 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 每页记录数*当前页数 id //当前页数必须>0
FROM TestTable
ORDER BY id DESC))
ORDER BY ID DESC
-------------------------------------
分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高!严重推荐

当前页数从0编号

(默认ASC排序)
SELECT TOP 每页记录数 *
FROM TestTable
WHERE (ID >=
(SELECT MAX(id)
FROM (SELECT TOP (每页记录数*当前页数)+1 id //当前页数从0编号
FROM TestTable
ORDER BY id) AS T))
ORDER BY ID
*************************
用DESC排序时,需要改成:
SELECT TOP 每页记录数 *
FROM TestTable
WHERE (ID <=
(SELECT MIN(id)
FROM (SELECT TOP (每页记录数*当前页数)+1 id //当前页数从0编号
FROM TestTable
ORDER BY id DESC) AS T))
ORDER BY ID DESC
================================================
不管用哪种方法,设置条件都在最里面的select里
如:
把id>=100 且 FirstName='FirstName_XXX'的记录分页
(默认ASC排序)
SELECT TOP 每页记录数 * FROM TestTable
WHERE (ID >=
(SELECT MAX(id)
FROM (SELECT TOP (每页记录数*当前页数)+1 id //当前页数从0编号
FROM TestTable
where id >=100 and FirstName='FirstName_XXX' //设置条件
ORDER BY id) AS T))
ORDER BY ID
天天看资料小站
2011-03-17 · TA获得超过205个赞
知道小有建树答主
回答量:379
采纳率:0%
帮助的人:258万
展开全部
推荐参考《jsp从入门到精通》,里面有jsp分页实例
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
symphonia0202
2011-03-17 · 超过17用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:47.6万
展开全部
oracle : select * from table where rownum > [page] * [item_count_per_page] and rownum < [page+1] * [item_count_per_page]
sqlserver : select top [item_count_per_page] * from table where id > [page] * [item_count_per_page]*[step] order by id(此方法前提是id自动增长,且增长大小为step)
mySql : select * from table limit [page] * [item_count_per_page],[item_count_per_page]
sybase与sqlserver类似
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式