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

2024-11-22 19:35:27
推荐回答(3个)
回答1:

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条记录。代码的可读性要好很多,应用也更灵活。

回答2:

凡是查询经常涉及第几行的问题,最好表中有个自增列作为序号,如果该序号列叫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

回答3:

select * from
(select rownum, tableA.* from talbeA
where rownum <= 40)
where rownum > 31