mysql:
select * from table limit 0,10;-- 查询10条记录,0-开始位置,1-结束位置,注:从0开始
oracle:
第一种(利用rownum伪列进行查询):SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 20)WHERE RN >= 10;第二种:select * from (select e.*,rownum r from (select * from emp order by sal desc) e ) e1 where e1.r>10 and e1.r<=20;
Sql Server:
第一种(利用Not In和SELECT TOP分页):SELECT TOP 10 *FROM TestTableWHERE (ID NOT IN(SELECT TOP 20 idFROM TestTableORDER BY id))ORDER BY ID SELECT TOP 页大小 *FROM TestTableWHERE (ID NOT IN(SELECT TOP 页大小*页数 idFROM 表ORDER BY id))ORDER BY ID第二种(利用ID大于多少和SELECT TOP分页):SELECT TOP 10 *FROM TestTableWHERE (ID >(SELECT MAX(id)FROM (SELECT TOP 20 idFROM TestTableORDER BY id) AS T))ORDER BY ID SELECT TOP 页大小 *FROM TestTableWHERE (ID >(SELECT MAX(id)FROM (SELECT TOP 页大小*页数 idFROM 表ORDER BY id) AS T))ORDER BY ID第三种(利用SQL的游标存储过程分页):create procedure XiaoZhengGe@sqlstr nvarchar(4000), --查询字符串@currentpage int, --第N页@pagesize int --每页行数asset nocount ondeclare @P1 int, --P1是游标的id@rowcount intexec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount outputselect ceiling(1.0*@rowcount/@pagesize) as 总页数--,@rowcount as 总行数,@currentpage as 当前页set @currentpage=(@currentpage-1)*@pagesize+1exec sp_cursorfetch @P1,16,@currentpage,@pagesizeexec sp_cursorclose @P1set nocount off