51Testing软件测试论坛

标题: 【求助】sql server 2000里的一个排序问题 [打印本页]

作者: puchonghui    时间: 2008-1-15 00:33
标题: 【求助】sql server 2000里的一个排序问题
a b是一个表里的两个字段
我要取a每种值对应的b字段里排序排在前三位的记录。。。

比如说
a b
1 1
1 2
1 3
1 4
2 2
2 4
2 6
2 8

查询返回
a b
1 1
1 2
1 3
2 2
2 4
2 6
作者: puchonghui    时间: 2008-1-15 00:33
补充说明: 用一句sql语句。。。
作者: 云层    时间: 2008-1-16 18:32
在gavin大虾的指点下做出了这个题目,再拜一下gavin兄
假设表名为temp

select * from temp as p where b in(select top 3 b from p where p.a=a )
作者: puchonghui    时间: 2008-1-16 21:03

前天晚上困扰了好久。。。。。
哎。。。偶的sql功力还是不行呀。。。
作者: tanbin2002    时间: 2008-1-18 13:37
加油练习SQL 语句哦。谢谢版主的答案。
作者: joseph_wh    时间: 2008-1-18 13:56
select *
  from temp as p
where b in (select top 3 b
               from p
              where p.a=a)

----
这样更清晰点。
作者: 云层    时间: 2008-3-14 12:29
昨天上课遇到这个问题,结果忘了怎么做了,郁闷
作者: meng0819    时间: 2008-3-16 23:19
云层也会忘记?我帮你补上,
select * from (select top 3 a,b from tt order by a asc,b)
union
(select top 3 a,b from tt order by a desc,b)
note:
我的sql2000在朋友练习时,删掉了没有装上,以上的sql在access中测试通过。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2