怎么查询数据库中第30到40条记录呢?

yyyrrr51 2007-10-30 11:08:13
通过ID,查询当前第30-40条记录
注意,ID不是顺序的
...全文
813 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
青锋-SS 2007-10-30
  • 打赏
  • 举报
回复
select top 40 * into #t from table1;
set rowcount 30
delete from #t;
set rowcount 0
select * from #t
Generics 2007-10-30
  • 打赏
  • 举报
回复
如果是SQL 2005, 用CTE最简单.

With X as
( Select *, row_number() over(order by ID) as rowNum
From 表
)
select * from X
where rowNum between 30 and 40
青锋-SS 2007-10-30
  • 打赏
  • 举报
回复
select top 10 * from (select top 40 * from table1 order by id) t order by id desc
销魂的拖拉机 2007-10-30
  • 打赏
  • 举报
回复
两层查找,简单想法才是最直接的对吗?
eagle_xwj 2007-10-30
  • 打赏
  • 举报
回复
问下楼上,用的那个写SQL CODE的工具是什么?好像很多人用哈,怎么我不知道的
pt1314917 2007-10-30
  • 打赏
  • 举报
回复
不好意思,上面敲错了。应该把所有id改为pid
pt1314917 2007-10-30
  • 打赏
  • 举报
回复

用临时表吧。
select pid=identity(int,1,1),* into #temp from a
1、select top 10 * from #temp where id not in (select top 30 id from #temp order by id) order by id
2、select top 10 * from (select top 40 * from #temp order by id)a order by id desc
yyyrrr51 2007-10-30
  • 打赏
  • 举报
回复
还有没有比较优的方法?

比如要查10W条记录里面的第5400到18100条呢?
feixiangVB 2007-10-30
  • 打赏
  • 举报
回复
通过ID,查询当前第30-40条记录
注意,ID不是顺序的

前後會不會矛盾了?
feixiangVB 2007-10-30
  • 打赏
  • 举报
回复
SELECT TOP 10 * FROM
( SELECT TOP 40 * FROM 表 ORDER BY ID desc) t
samfeng_2003 2007-10-30
  • 打赏
  • 举报
回复
SELECT TOP 10 * FROM
( SELECT TOP 30 * FROM 表 ) A ORDER BY ID

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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