VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 791|回复: 8

求一获得结果集的SQL语句

[复制链接]

2

主题

9

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-1-11 15:00:01 | 显示全部楼层 |阅读模式
有一个表的内容如下:
     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
请问该如何实现呀?或者说我要获得其中的一个结果集该如何实现呀?
回复

使用道具 举报

2

主题

9

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
 楼主| 发表于 2020-1-15 17:45:01 | 显示全部楼层
不好意思更正一下:
有一个表的内容如下:
     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      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     3      4
请问该如何实现呀?或者说我要获得其中的一个结果集该如何实现呀?
回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-1-15 19:54:01 | 显示全部楼层
每個結果集分開的條件是什麽?
回复

使用道具 举报

2

主题

9

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
 楼主| 发表于 2020-1-16 19:36:01 | 显示全部楼层
条件是field2,就是以field2来划分组.
如上面三个结果集就是三个组.
回复

使用道具 举报

0

主题

6

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-17 11:36:01 | 显示全部楼层
条件不充分
回复

使用道具 举报

0

主题

6

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-17 12:45:01 | 显示全部楼层
-----------引用--------------
条件是field2,就是以field2来划分组.
如上面三个结果集就是三个组.

如果是这样那得到的是4组
a     1      dd
a     1      c
a     1      8

a     2      ee
a     2      e
a     2      5

a     3      ee
a     3      null
a     3      4

a     4      ee

回复

使用道具 举报

2

主题

9

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
 楼主| 发表于 2020-1-17 14:27:02 | 显示全部楼层
哦.这不是我想要的结果集
回复

使用道具 举报

0

主题

66

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-1-17 20:54:01 | 显示全部楼层
--建立环境,临时表#,内容略

--建立唯一递增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)')


--结果
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
回复

使用道具 举报

0

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-18 06:18:01 | 显示全部楼层
如果結果是
    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
那結果是什么樣子的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表