mysql数据库:
select * from table LIMIT 5,10; #返回第6-15行数据
select * from table LIMIT 5; #返回前5行
select * from table LIMIT 0,5; #返回前5行
------------------------------------------------------------------
sqlserver数据库:
SELECT TOP 10 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 20 id
FROM TestTable
ORDER BY id))
ORDER BY ID
---------------------------------------------------------------
oracle数据库:
select ID from
(
select ID , rownum as con from
(
select ID from TestSort order by ID
)
where rownum <= 3 /*N值*/
)
where con >= 2; /*M 值*/
select * from (select rownum,name from table where rownum <=endIndex )
where rownum > startIndex
------------------------------------------------------
db2数据库
SELECT * FROM (Select 字段1,字段2,字段3,rownumber() over(ORDER BY 排序用的列名 ASC) AS rn from 表名) AS a1 WHERE a1.rn BETWEEN 10 AND 20
以上表示提取第10到20的纪录
select * from (select rownumber() over(order by id asc ) as rowid from table where rowid <=endIndex )
where rowid > startIndex
------------------------------------------------------
db2 as400
db2 as400没有提供像db2和oracle的rownumber() 函数 不能像其他数据库那样分页 所以分页的时候需要分页表需要有一个可供排序的字段 尽量唯一 然后按次字段排序 按需求取一定量的数据出来
( FETCH FIRST 20 ROWS ONLY 假定取20条的写法) 然后需要记录上次查询的字段值供上一页使用 并记录本次最后所取出的字段值 供下一页使用 末页需要倒叙所有
数据 然后取前20条 然后再倒叙 首页就不用说了
select * from table LIMIT 5,10; #返回第6-15行数据
select * from table LIMIT 5; #返回前5行
select * from table LIMIT 0,5; #返回前5行
------------------------------------------------------------------
sqlserver数据库:
SELECT TOP 10 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 20 id
FROM TestTable
ORDER BY id))
ORDER BY ID
---------------------------------------------------------------
oracle数据库:
select ID from
(
select ID , rownum as con from
(
select ID from TestSort order by ID
)
where rownum <= 3 /*N值*/
)
where con >= 2; /*M 值*/
select * from (select rownum,name from table where rownum <=endIndex )
where rownum > startIndex
------------------------------------------------------
db2数据库
SELECT * FROM (Select 字段1,字段2,字段3,rownumber() over(ORDER BY 排序用的列名 ASC) AS rn from 表名) AS a1 WHERE a1.rn BETWEEN 10 AND 20
以上表示提取第10到20的纪录
select * from (select rownumber() over(order by id asc ) as rowid from table where rowid <=endIndex )
where rowid > startIndex
------------------------------------------------------
db2 as400
db2 as400没有提供像db2和oracle的rownumber() 函数 不能像其他数据库那样分页 所以分页的时候需要分页表需要有一个可供排序的字段 尽量唯一 然后按次字段排序 按需求取一定量的数据出来
( FETCH FIRST 20 ROWS ONLY 假定取20条的写法) 然后需要记录上次查询的字段值供上一页使用 并记录本次最后所取出的字段值 供下一页使用 末页需要倒叙所有
数据 然后取前20条 然后再倒叙 首页就不用说了