这样的SQL语句怎么写

cnmagic 2006-03-17 11:31:24
如果我的A表中有100条记录。
如果我取前10条 那我用 select top 10 * from A
那么如果我取第11条到第20条记录怎么写??
如果取21到30呢?
...全文
140 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
周力 2006-03-18
  • 打赏
  • 举报
回复
写个存储过程实现吧.

Create proc azhoulia_proc
(
@pagenumber int,---页号
@pagesize int --每页显示的数量
)
as

select * from TableName
where iAutoID >(@pagenumber-1)*@pagesize and iAutoID <@pagenumber*@pagesize


调用:exec azhoulia_proc(1,10)
exec azhoulia_proc(2,10)

ll_e_mail 2006-03-18
  • 打赏
  • 举报
回复
Select Top 30 * From a Where ID Not In (Select Top 11 ID From a)
aniude 2006-03-17
  • 打赏
  • 举报
回复
MARK
撸大湿 2006-03-17
  • 打赏
  • 举报
回复

select Top 10 * from (select Top 20 from A ) B order by MYID desc
--11到20条记录,只是顺序要倒一下
--MYID是自增列
zlp321002 2006-03-17
  • 打赏
  • 举报
回复
--SQL Server 2005

select * from
(
select *,ROW_NUMBER()OVER (ORDER BY 排序字段) AS ROWNUBER FROM 表
) TB
WHERE ROWNUBER BETWEEN 11 AND 20


select * from
(
select *,ROW_NUMBER()OVER (ORDER BY 排序字段) AS ROWNUBER FROM 表
) TB
WHERE ROWNUBER BETWEEN 21 AND 30
  • 打赏
  • 举报
回复
同意楼上的!
如果你的数据量比较大,而且查询也比较频繁,建议采用数据库分页的处理方式。
撸大湿 2006-03-17
  • 打赏
  • 举报
回复
select top 10 * from A where MYID not in (select top 10 MYID from A)
--11到20条记录
select top 20 * from A where MYID not in (select top 10 MYID from A)
--11到30条记录
--同理
kltt1 2006-03-17
  • 打赏
  • 举报
回复
11-20条的记录
select *
from A
where 列名 not in(select top 10 列名
from A)and 列名 not in(select top 80 列名 from A order by MYID desc)

21-30条的记录
select *
from A
where 列名 not in(select top 20 列名
from A)and 列名 not in(select top 70 列名 from A order by MYID desc)

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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