请教各位高手:我有20000条数据,如何实现1000条一次的数据检索。例如:

wallis 2002-09-29 10:57:35
请教各位高手:我有20000条数据,如何实现1000条一次的数据检索。例如:
先检索1000条
再检索下1000条
...全文
107 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
microlong 2002-09-29
  • 打赏
  • 举报
回复
调试过的程序
CREATE PROC TEST1
@A INT ,
@B INT
AS
DECLARE MYCUR SCROLL CURSOR FOR select * from YOURNAME
while @a <@b
begin
DECLARE @CON1 INT,
DECLARE @CON2 VARCHAR
fetch absolute @a from mycur INTO @CON1,@CON2
INSERT INTO WANG SELECT @CON1,@CON2
set @a=@a+1
end
close mycur
deallocate mycur
j9988 2002-09-29
  • 打赏
  • 举报
回复
查第N个1000
exec('select top 1000 * from TableName id not in
(select top '+cast(1000*(@N-1) as varchar(10))+' from TableName')

IronPromises 2002-09-29
  • 打赏
  • 举报
回复
下面的语句比not in语句效率要高很多!

头1000条:
select top 1000 * from yourTable where 主键字段 is not null;

第1001条到第2000条:
select top 1000 a.* from yourTable a
left outer join (select top 1000 * from yourTable) b
on a.主键字段 = b.主键字段
where b.主键字段 is null;

第2001条到第3000条:
select top 1000 a.* from yourTable a
left outer join (select top 2000 * from yourTable) b
on a.主键字段 = b.主键字段
where b.主键字段 is null;

以此类推
……
microlong 2002-09-29
  • 打赏
  • 举报
回复
CREATE PROC TEST
@A INT
@B INT
AS
DECLARE MYCUR SCROLL CURSOR FOR select * from yourtablename
while @a <@b
begin
open mycur
fetch absolute @a from mycursor
set @a=@a+1
end
close mycur
deallocate mycur
j9988 2002-09-29
  • 打赏
  • 举报
回复
查第N个1000
exec('select top 1000 * from TableName id not in
(select top '+cast(1000*@N as varchar(10))+' from TableName')
ayzwd 2002-09-29
  • 打赏
  • 举报
回复
select top 1000 * from table
再和你的主键结合起来用就行了
lxinjun 2002-09-29
  • 打赏
  • 举报
回复
select top 1000 * from table id not in (select 1000*i if from table)

你应该明白的

34,576

社区成员

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

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