首页 新闻 会员 周边

求一个SQL查询

0
悬赏园豆:20 [已解决问题] 解决于 2011-04-27 10:27
字段1 字段2 字段3
1        2        a
2        2        a
3        5        b
4        2        a
5        2        b
6        5        a
7        5        c
查询结果是
字段1 字段2 字段3
1          2      a
2          2      a
3          5      b
5          2      b
7          5      c
分组取前2条数据,并且当只有一条数据就取一条。
低调De程序猿的主页 低调De程序猿 | 初学一级 | 园豆:38
提问于:2011-03-17 16:01
< >
分享
最佳答案
0
select top 2 * from tablename groupby x orderby ID asc;
收获园豆:20
Rusty's code | 菜鸟二级 |园豆:410 | 2011-03-18 09:52
其他回答(1)
0
IFNOTOBJECT_ID('[t_DemoA]') ISNULL
DROPTABLE[t_DemoA]
GO

CREATETABLE dbo.[t_DemoA] (
ID
intNOTNULLIDENTITY (1, 1),
Y
INTNOTNULL,
X
Nvarchar(10) NULL
)
GO
--插入数据
INSERTINTO[t_DemoA](Y, X) values(2,'a')
INSERTINTO[t_DemoA](Y, X) values(2,'a')
INSERTINTO[t_DemoA](Y, X) values(5,'b')
INSERTINTO[t_DemoA](Y, X) values(2,'a')
INSERTINTO[t_DemoA](Y, X) values(2,'b')
INSERTINTO[t_DemoA](Y, X) values(5,'a')
INSERTINTO[t_DemoA](Y, X) values(5,'c')
GO


SELECT*FROM[t_DemoA] T
WHERE ID in (
SELECTtop2 ID FROM[t_DemoA]
WHERE x=T.X orderby ID asc )

/*

ID Y X
1 2 a
2 2 a
3 5 b
5 2 b
7 5 c
*/
邀月 | 园豆:25475 (高人七级) | 2011-03-17 16:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册