select * from a_matrix_navigation_map
where rowid not in(select rowid from a_matrix_navigation_map where rownum<=0) and rownum<=10 第二种: SELECT * FROM ( SELECT A.*, rownum r FROM ( SELECT * FROM a_matrix_navigation_map ) A WHERE rownum <= 10 ) B WHERE r > 0 第三种 SELECT * FROM table WHERE ROWNUM<101; minus SELECT * FROM table WHERE ROWNUM<91; 第四种 可以用变通一点的办法,我给个示例: sql = "select a_id,a_title,a_author,aID,a_time,a_readtime,sID from article order by a_id"; int a; while (rs.next()) { a++; if (a=ipage+spage)continue; ... } 其中第二种是非常成熟的分页 我的实例~ 即可实现 类似limit 功能
$bandanspager="select * from abc t2,abc1 t1 where t1.id=t2.id group by t1.id";
$sql=" SELECT * FROM
(
SELECT A.*, rownum r
FROM
( ".$bandanspager.") A
WHERE rownum <= 10
) B
WHERE r > 0
Oracle不支持类似于 MySQL 中的 limit. 但你还是可以rownum来限制返回的结果集的行数.
其他数据库模拟实现mysql的limit语法 假如我有个user表,我想查询符合某些条件的第50个用户开始的10个用户,且不能使用id号between and那样查询,应该怎么写SQL语句? 在mysql数据库中有limit,offset语句可以方便的实现,那么在SQL server中呢?SQL Server是否支持limit和offset语句呢? select top 10 * from oracle,如果想从表中取出按照某字段排序前M到N条记录 下面的ORACLE语句是最好的: SQL> select ID from
SqlServer分页: 一条SQL语句搞定Sql Server 2000 分页 Sql Server 2000 的分页方案大多采用存储过程来完成,存储过程书写比较复杂,在参考了ITPUB网站上众多网友的意见后用一条SQL语句就可以实现分页功能。
SELECT TOP 页大小 *
FROM
Users
WHERE
(ID NOT IN (SELECT TOP (页大小*(页数-1)) ID FROM Users ORDER BY ID DESC))
ORDER BY
ID DESC
注:页大小指的是每页显示的条数。黄底部分是需要用程序运算后的一个数字。
千万级数据分页的存储过程: 引用自:Oracle分页(limit方式的运用)+付上SqlServer分页+千万级数据分页的存储过程 /* declare @strSQL varchar(6000) -- 主语句 if @OrderType != 0 set @strSQL = 'select top ' + str(@PageSize) + ' * from [' if @strWhere != '' if @PageIndex = 1 set @strSQL = 'select top ' + str(@PageSize) + ' * from [' exec (@strSQL) GO |
Oracle分页(limit方式的运用)+付上SqlServer分页+千万级数据分页的存储过程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.