【求助】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 补充说明: 用一句sql语句。。。 在gavin大虾的指点下做出了这个题目,再拜一下gavin兄
假设表名为temp
select * from temp as p where b in(select top 3 b from p where p.a=a ) :hug: :hug: :hug: :hug: :hug:
前天晚上困扰了好久。。。。。
哎。。。偶的sql功力还是不行呀。。。:'( 加油练习SQL 语句哦。谢谢版主的答案。 select *
from temp as p
where b in (select top 3 b
from p
where p.a=a)
----
这样更清晰点。 :Q 昨天上课遇到这个问题,结果忘了怎么做了,郁闷 云层也会忘记?我帮你补上,
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中测试通过。
页:
[1]