注册 登录
编程论坛 SQL Server论坛

怎样查询表第5条道第10条的数据

dhdhzzw 发布于 2008-03-19 12:00, 6064 次点击
我想查询第5条到第10条的数据
请问怎样写?
7 回复
#2
cobby2008-03-19 14:19
select * from tablename where rownum between 5 and 10
#3
Saber02272008-03-19 16:56
select * from tablename where sid between 5 and 10
这个是sid为标识列并且是正常排序的情况
#4
sunkaidong2008-03-19 17:20
select * from tablename where rownum >=5 and rownum <=10
刚学..以后一起进步...
#5
dhdhzzw2008-03-19 17:45
[bo]以下是引用 [un]Saber0227[/un] 在 2008-3-19 16:56 的发言:[/bo]

select * from tablename where sid between 5 and 10
这个是sid为标识列并且是正常排序的情况

楼上的兄弟说得对,这是正常排序的情况,,但我现在的ID不是正常排序不是从1开始。
我想达搜表的   第5列至第10列  
而不是ID排序的第5到第10,,怎么写?
#6
purana2008-03-19 18:21
select top 5 *
from tb
where id not in(select top 5 id from tb order by id)
order by id
#7
purana2008-03-19 18:23
取n到m条记录的语句

1.
select top m * from tablename where id not in (select top n id from tablename)

2.
select top m * into 临时表(或表变量) from tablename order by columnname -- 将top m笔插入
set rowcount n
select * from 表变量 order by columnname desc

3.
select top n * from  
(select top m * from tablename order by columnname) a
order by columnname desc


4.如果tablename里没有其他identity列,那么:
select identity(int) id0,* into #temp from tablename

取n到m条的语句为:
select * from #temp where id0 > =n and id0  <= m

如果你在执行select identity(int) id0,* into #temp from tablename这条语句的时候报错,那是因为你的DB中间的select into/bulkcopy属性没有打开要先执行:
exec sp_dboption 你的DB名字,'select into/bulkcopy',true


5.如果表里有identity属性,那么简单:
select * from tablename where identitycol between n and m
#8
dhdhzzw2008-03-20 10:03
谢谢版主,很详细
1