永发信息网

有关JSP分页的SQL语句!!

答案:4  悬赏:30  手机版
解决时间 2021-03-27 13:59
有关JSP分页的SQL语句!!
最佳答案
那只好先算出来记录序号了。然后写子查询出来,SQL的TOP关键字可以实现,但是参数不支持表达式,只能是常量。
SELECt *
FROM
(
  SELECt TOP 5 *
  FROM
  (
    SELECt TOP 15 *
    FROM bean
    ORDER BY ID ASE
  ) t
  ORDER BY ID DESC
) t
ORDER BY ID ASE
还有一种写法,适合条件少的情况:
SELECt TOP 5 *
FROM bean
WHERe ID NOT IN
(
  SELECt TOP 10 *
  FROM bean
  ORDER BY ID
)
ORDER BY ID
全部回答
SELECt TOP 5 FROM bean WHERe ID NOT IN(SELECt TOP (5*(pageNo-1)) FROM bean ORDER BY ID DESC)ORDER BY ID DESC
alter proc porcpagination
@tablename varchar(20) ,--表名
@keyname varchar(50)='',--主键
@pagesize int =10,--每页多少行
@pageindex int=1 ,--现在是第几页
@columnnames varchar(200)='*',--显示那些列
@orderType bit=0 ,--排序规则
@wherestr varchar (500)='' ,--条件
@pagecount bit =0--返回行数
as
declare @sql varchar(1000)
declare @orderstr varchar(50)
declare @maxorminstr varchar (50)
if @pagecount<>0
begin
if @wherestr<>''
set @sql='select count(*) as pagecount from '+@tablename +' where '+@wherestr
else
set @sql='select count(*) as pagecount from '+@tablename
end
else
begin
if @columnnames=''
set @columnnames='*'
if @orderType<>0
begin
set @orderstr=' order by '+ @keyname +' desc '
set @maxorminstr ='>=(select min('+@keyname+') '
end
else
begin
set @orderstr=' order by '+ @keyname
set @maxorminstr ='>=(select max('+@keyname+') '
end
if @wherestr<>''
begin
set @sql='select top '+convert(varchar(50),@pagesize)+
' '+@columnnames +' from '+@tablename +' where '+@keyname+' '
+@maxorminstr+' from (select top '+
convert(varchar(50),(@pageindex-1)*@pagesize)+@columnnames +
' from '+@tablename +@orderstr+') as tmptable) and'+ @wherestr +@orderstr
end
else
begin
set @sql='select top '+convert(varchar(50),@pagesize)+
' '+@columnnames +' from '+@tablename +' where '+@keyname+' '
+@maxorminstr+' from (select top '+
convert(varchar(50),(@pageindex-1)*@pagesize)+@columnnames +
' from '+@tablename +@orderstr+') as tmptable)'+@orderstr
end
exec (@sql)
--print @sql
end
exec porcpagination 'jobs','min_lvl' ,2,3,'',1--调用
用存储过程比较好,不要怕麻烦,你编写起来是麻烦,但是用起来要比拼接SQL语句好用多了
示例代码:
USE [MyBookShop]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Get_Book_ByCategoryId]
(
@CategoryId uniqueidentifier,
@page int,
@row int
)
AS

declare @sql varchar(400)
set @sql='SELECt top '+convert(varchar(20),@row)+' Id,Title,Author,PublishDate,ISBN,WordsCount,UnitPrice,ContentDescription,AuthorDescription,EditorComment,Toc,Clicks,CategoryId,PublisherId,AdminName,BuyCount FROM Books where Id not in (select top '+cast((@row*(@page-1)) as varchar(4))+' id from books where CategoryId='''+cast(@CategoryId as varchar(36))+''' order by Title) and CategoryId='''+cast(@CategoryId as varchar(36))+''' order by Title'
exec (@sql)
RETURN
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
农历巳年元月的阳历是哪年
MC蓝焰忽悠北京少妇最后的背景音乐叫什么
我的胸是不是很小阿小阿,阿
可不可以用8.4v电源直接充7.4v电池
企业中的CIO是什么意思
25个同学去划船,有下列两种船:每条船限坐5人
求1﹣3+2-6+3-9+4-12+....+31-93+32-96+33-9
养殖业什么最赚钱农村
垫层不受力吗
《捡酒瓶的男孩》中的万丈深渊是指什么
和我一起背诵周易二坤为地
CentOS6.7的终端用ls -l为什么显示的是总用量
开了个汉堡店,工商申请的名称与实体店名不一
36岁属狗的锦州男人吴野是不是喜欢夜跑?
一楼神台位对上去三楼放沙发可以吗
推荐资讯
日野J05发动机冒黑烟什么原因?请大师指点
JAVA标识符;Sting 和User name为什么是非法
对黄河有什么措施
槐店王婆大虾是在槐店吗?槐店在哪里呢?
耳朵里面总感觉有气怎么办
请问怎样将现代文翻泽成文言文
如何学习花卉学
能不能告诉我主耶稣是怎么爱世人的,他的爱在
成都哪个运营商的4G信号最好
我不想故作潇洒,只想活的真实就像无拘无束的
教师节幽默相声
车门变形钣金喷漆了,这个能坚持多长时间,听
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?