sql server2000中如何查询指定行的记录
现有一张表tableA问如何查询tableA中的第三十一行到第四十行的记录,假设tableA中的记录极多!...
现有一张表tableA问如何查询tableA中的第三十一行到第四十行的记录,假设tableA中的记录极多!
展开
推荐于2017-09-13 · 知道合伙人软件行家
关注
展开全部
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条记录。代码的可读性要好很多,应用也更灵活。
展开全部
凡是查询经常涉及第几行的问题,最好表中有个自增列作为序号,如果该序号列叫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
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from
(select rownum, tableA.* from talbeA
where rownum <= 40)
where rownum > 31
(select rownum, tableA.* from talbeA
where rownum <= 40)
where rownum > 31
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询