求一获得结果集的SQL语句
有一个表的内容如下:
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 4
field3字段的内容不用管它.
我想让它按字段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
请问该如何实现呀?或者说我要获得其中的一个结果集该如何实现呀?
[解决办法]
每個結果集分開的條件是什麽?
[解决办法]
条件不充分
[解决办法]
--建立环境,临时表#,内容略
--建立唯一递增ID,如果有的话不用建立
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) ')
--结果
1a1dd0
2a2ee0
3a3ee0
4a4ee0
--当set @page=2 的结果
5a1c4
6a2e4
7a3NULL4
--当set @page=3 的结果
8a187
9a257
10a247
[解决办法]
如果結果是
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
那結果是什么樣子的?