puchonghui 发表于 2008-1-15 00:33:13

【求助】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:47

补充说明: 用一句sql语句。。。

云层 发表于 2008-1-16 18:32:16

在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:03

:hug: :hug: :hug: :hug: :hug:
前天晚上困扰了好久。。。。。
哎。。。偶的sql功力还是不行呀。。。:'(

tanbin2002 发表于 2008-1-18 13:37:18

加油练习SQL 语句哦。谢谢版主的答案。

joseph_wh 发表于 2008-1-18 13:56:41

select *
from temp as p
where b in (select top 3 b
               from p
            where p.a=a)

----
这样更清晰点。

云层 发表于 2008-3-14 12:29:41

:Q 昨天上课遇到这个问题,结果忘了怎么做了,郁闷

meng0819 发表于 2008-3-16 23:19:40

云层也会忘记?我帮你补上,
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]
查看完整版本: 【求助】sql server 2000里的一个排序问题