取 第20-40条记录,有没有这样的select 语句呀

来源:百度知道 编辑:UC知道 时间:2024/06/08 07:06:40
记得有top这个关键词,不知道能不能取指定的记录的关键词,像这样取第20至40记录
ROWNUM 表中没有记录号这个字段
这是不是关键字

你要是SQLSERVER2000的话 我下面的最简单。rownum是ORACLE的
SQL2005 有个RowNumber函数功能相似
--======================================
从tablename 表中取出第 n 条到第 m 条的记录

SQL SERVER的写法

SELECT TOP m-n+1 *
FROM tablename
WHERE (id NOT IN
(SELECT TOP n-1 id FROM tablename))

你这是一个分页算法的,我提供的比较简单,网上还有很多不错的,如果你对这个不满意,再去网上找找 关键字 “分页算法”

ORACLE的话改一下语句就可以了
SELECT *
FROM tablename
WHERE (id NOT IN
(SELECT id FROM tablename where rownum<n )) and rownum< m-n+2

rownum 的用法需要注意的是rownum >1 时是查不到一条记录的,而rownum >0 或 rownum >=1 却总显示所有的记录;因为 rownum 是在查询到的结果集后加上去的,它总是从1开始

MYSQL的类似语法不清楚了,你查查关键字的语法参考这两条语句,应该也好写出来

-----------------------------------
另外这语句你需要将M N计算后填入,你不能直接作为变量使用。如果你想做成一个的存储过程;m,n作为变量输入,那就得提前完成计算再查询。

通过先升序取top40,再降序取top20

参见 查询第m至第n条记录的方法http