求一个能同时支持derby,DB2,SQLServer三种数据库的数据库分页的方法
[b]问题补充:[/b]
不使用持久层框架
求一个能同时支持derby,DB2,SQLServer三种数据库的数据库分页的方法
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- lijiepeng 2009-11-06 18:01关注
补充:
上面的分页sql语句是sqlserver的.
下面是其它数据库的,比照的写就OK了.
几种数据库分页获得本页数据的写法!oracle:
code:
SELECT * FROM
(
SELECT A.*, rownum r
FROM
(
SELECT *
FROM Articles
ORDER BY PubTime DESC
) A
WHERE rownum <= PageUpperBound
) B
WHERE r > PageLowerBound;注释:红色部分为可更换的查询语句PageUpperBound为大树,也就是我们所说的结束的条数目,PageLowerBound为开始的条数目!
DB2:
code:
select * from ( select rownumber() over() as row_next,t.* from (
SELECT *
FROM Articles
ORDER BY PubTime DESC) as t) as temp where row_next between 10 and 30
注释:红色部分可更换你想要的查询语句10更换为开始的条目30更换为结束的条目数字
MYSQL:
code:
sql + " limit " + spage + "," + perpagenum;
注释:sql可替换为你想要的查询语句spage为开始的条目数字,perpagenum为开始往后有多少条
PostgreSQL:
code:
sql + " limit " + perpagenum + " OFFSET " + spage
注释:注意的地方与上面相同
SQLSERVER
code:
分页方案一:(利用Not In和SELECT TOP分页)
语句形式:
SELECT TOP 10 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 20 id
FROM TestTable
ORDER BY id))
ORDER BY IDSELECT TOP 页大小 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id))
ORDER BY ID分页方案二:(利用ID大于多少和SELECT TOP分页)
语句形式:
SELECT TOP 10 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 20 id
FROM TestTable
ORDER BY id) AS T))
ORDER BY IDSELECT TOP 页大小 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id) AS T))
ORDER BY ID本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥50 永磁型步进电机PID算法
- ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
- ¥88 找成都本地经验丰富懂小程序开发的技术大咖
- ¥15 如何处理复杂数据表格的除法运算
- ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
- ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
- ¥200 uniapp长期运行卡死问题解决
- ¥15 latex怎么处理论文引理引用参考文献
- ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
- ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?