sql server2000中如何查询指定行的记录

现有一张表tableA问如何查询tableA中的第三十一行到第四十行的记录,假设tableA中的记录极多!... 现有一张表tableA问如何查询tableA中的第三十一行到第四十行的记录,假设tableA中的记录极多! 展开
 我来答
hy1397471
推荐于2017-09-13 · 知道合伙人软件行家
hy1397471
知道合伙人软件行家
采纳数:4714 获赞数:17154
15年数据库维护及数据库应用系统开发经验,从事零售业、服务业及财务管理类系统开发与维护。

向TA提问 私信TA
展开全部

1、使用top

例,检索表a第3行记录

select * from a where id in(select top 3 id from a) and id not in(select top 2 id from a)

即:取top 3,前3条记录,再去除ID等于前2条记录的id

top写法对单一主键的表格,比较方便,多主键表就不太方便,且语句可读性较差。


2、使用带自增ID的临时表

例,检索表a第3行记录

select IDENTITY(int,1,1) as 'rowid',* into #temptab from a

#temptab 效果如图:

检索记录,就很方便了

select * from #temptab where rowid = 3

即第3条记录。代码的可读性要好很多,应用也更灵活。

wforce
推荐于2017-09-25 · TA获得超过843个赞
知道小有建树答主
回答量:672
采纳率:0%
帮助的人:790万
展开全部
凡是查询经常涉及第几行的问题,最好表中有个自增列作为序号,如果该序号列叫rownum,那么:
select *
from tableA
where rownum between 31 and 40

如果确实没有序号列和不可能修改表,例如按id列排序,只能:
select top 10 *
from (select top 40 * from tableA order by id) tb
order by id desc
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
绿竹小筑18
2010-06-25 · 超过29用户采纳过TA的回答
知道答主
回答量:98
采纳率:0%
帮助的人:83.4万
展开全部
select * from
(select rownum, tableA.* from talbeA
where rownum <= 40)
where rownum > 31
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式