有一个表的内容如下:
field1 field2 field3
a 1 dd
a 2 ee
a 3 ee
a 4 ee
a 1 c
a 2 e
a 3 null
a 1 8
a 2 5
a 2 4field3字段的内容不用管它.
我想让它按字段field2 来分三个结果集出现即第一个结果集为
a 1 dd
a 2 ee
a 3 ee
a 4 ee
第二个结果集为:
a 1 c
a 2 e
a 3 null
第三个结果集为
a 1 8
a 2 5
a 2 4
请问该如何实现呀?或者说我要获得其中的一个结果集该如何实现呀?
field1 field2 field3
a 1 dd
a 2 ee
a 3 ee
a 4 ee
a 1 c
a 2 e
a 3 null
a 1 8
a 2 5
a 2 4field3字段的内容不用管它.
我想让它按字段field2 来分三个结果集出现即第一个结果集为
a 1 dd
a 2 ee
a 3 ee
a 4 ee
第二个结果集为:
a 1 c
a 2 e
a 3 null
第三个结果集为
a 1 8
a 2 5
a 2 4
请问该如何实现呀?或者说我要获得其中的一个结果集该如何实现呀?
有一个表的内容如下:
field1 field2 field3
a 1 dd
a 2 ee
a 3 ee
a 4 ee
a 1 c
a 2 e
a 3 null
a 1 8
a 2 5
a 3 4field3字段的内容不用管它.
我想让它按字段field2 来分三个结果集出现即第一个结果集为
a 1 dd
a 2 ee
a 3 ee
a 4 ee
第二个结果集为:
a 1 c
a 2 e
a 3 null
第三个结果集为
a 1 8
a 2 5
a 3 4
请问该如何实现呀?或者说我要获得其中的一个结果集该如何实现呀?
如上面三个结果集就是三个组.
条件是field2,就是以field2来划分组.
如上面三个结果集就是三个组.如果是这样那得到的是4组
a 1 dd
a 1 c
a 1 8a 2 ee
a 2 e
a 2 5a 3 ee
a 3 null
a 3 4a 4 ee
select id=identity(int,1,1),* into ## from #--按递增序列分组
select *,(select isnull(max(id),0) from ## where id<t.id and field2>t.field2) as page into ### from ## t --查询
declare @page int
set @page=1 --设置页码
exec('select * from ### where page=(select top 1 page from (select distinct top '+@page+' page from ### order by page ) tt order by page desc)')
--结果
1 a 1 dd 0
2 a 2 ee 0
3 a 3 ee 0
4 a 4 ee 0
--当set @page=2 的结果
5 a 1 c 4
6 a 2 e 4
7 a 3 NULL 4--当set @page=3 的结果
8 a 1 8 7
9 a 2 5 7
10 a 2 4 7
field1 field2 field3
a 1 dd
a 2 ee
a 3 ee
a 1 c
a 2 e
a 3 null
a 1 8
a 3 4
a 2 5
a 4 ee
那結果是什么樣子的?