关于分段取数据的问题,如下:
字段:FID FName 按FName排序:FID FName
1 B 2 A
2 A 6 A
3 B 9 A
4 C 10 A
5 B 1 B
6 A 3 B
7 B 5 B
8 C 7 B
9 A 4 C
10 A 8 C
分段取数据,每次3条记录:
第一次:
FID FName
2 A
6 A
9 A
第二次:
10 A
1 B
3 B
第三次:
5 B
7 B
4 C
第四次:
8 C
请问各位如何实现?
字段:FID FName 按FName排序:FID FName
1 B 2 A
2 A 6 A
3 B 9 A
4 C 10 A
5 B 1 B
6 A 3 B
7 B 5 B
8 C 7 B
9 A 4 C
10 A 8 C
分段取数据,每次3条记录:
第一次:
FID FName
2 A
6 A
9 A
第二次:
10 A
1 B
3 B
第三次:
5 B
7 B
4 C
第四次:
8 C
请问各位如何实现?
set rowcount 3
select FID , FName from table
where ....
order by
union
set rowcount 3
select FID , FName from table
where ....
order by 1
union
set rowcount 3
select FID , FName from table
where ....
order by 1
declare @SQLStr varchar(8000)
set @SQLStr='SELECT Top '+cast(@每页大小 as varchar)+' * FROM 表 WHERE 主键列 NOT IN (SELECT TOP '+cast(@每页大小*@第几页 as varchar)+' 主键列 from 表 )'
exec(@SQLStr)自己再改造改造
第一次
select * from
(select * from Table order by FName)
where rownum<=3
minus
select * from
(select * from Table order by FName)
where rownum<=0
第二次
select * from
(select * from Table order by FName)
where rownum<=6
minus
select * from
(select * from Table order by FName)
where rownum<=3
依此类推
count;
begin
count :=0;
while not adoquery1.eof do
begin
with adoquery1 do
begin
......
end;
inc(count);
if count=20 then break;
end;
end;
???