请问读取数据表中特定的n行记录的sql语句怎么写呢?

Mynxer 2005-07-14 10:46:26
我想要使用一条sql语句,获得表中从第start行开始的length行记录,这样的sql语句应该怎么写呢?

在MySQL数据库中,可以使用LIMIT start,length进行查询,在Access和Sql Server中应该怎样呢?

谢谢指教:)
...全文
130 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovedogdog 2005-08-15
  • 打赏
  • 举报
回复
mark
Mynxer 2005-07-14
  • 打赏
  • 举报
回复
第一种思路是正确的,也比较巧妙

between是不可行的,理由是难以保证id为n的行,到id为n+10的行之间就一定有10行记录,如果这之间的数据被删节,那就很可能小于10行,也就无法保证取出需要的行数了。当然也有办法解决,但是可能并不规范和理想。

好了,谢谢clon(鱼翔浅底,鹰击长空) ,结贴了:)
clon 2005-07-14
  • 打赏
  • 举报
回复
select * from tabel1 where id between(1,40) order by id desc
这样的吗?可以试一下
我用过select * from tabel1 where id in(1,2,4,40) order by id desc这样的
yezhutou 2005-07-14
  • 打赏
  • 举报
回复
可不可以用between啊
Mynxer 2005-07-14
  • 打赏
  • 举报
回复
谢楼上的,的确是个可行的思路,谢谢:)
是否有不用子查询的方法呢?
clon 2005-07-14
  • 打赏
  • 举报
回复
如果想再转换排序方式的话,如下,但我不能预期这样的语句的执行效率,作些小型数据库的应用应该还是可以的吧
select * from (select top length * from (select top (start+length) * from table1 order by id asc) order by id desc) order by id desc/asc
clon 2005-07-14
  • 打赏
  • 举报
回复
select top length from (select top (start+length) * from table1 order by id asc) order by id desc

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧