请教一个select语句的写法。
表TB的内容如下:
aaa, bbb
1 a
2 b
3 m
4 b
5 c
6 m
7 v
8 m
9 n
希望的返回结果如下:
aaa, bbb, ccc
1 a 1
2 b 1
3 m 1
4 b 2
5 c 1
6 m 2
7 v 1
8 m 3
9 n 1
规则:按字段aaa排序,bbb字段第一次出现时,ccc=1, 第二次出现时, ccc=2...以此类推。
问题点数:20、回复次数:7Top
1 楼LouisXIV(夜游神)回复于 2006-07-03 16:55:07 得分 20
declare @t table
(
aaa int,
bbb char(1)
)
insert into @t
select 1,'a' union all
select 2,'b' union all
select 3,'m' union all
select 4,'b' union all
select 5,'c' union all
select 6,'m' union all
select 7,'v' union all
select 8,'m' union all
select 9,'n'
select *,(select count(1) from @t where aaa<=a.aaa and bbb=a.bbb) ccc
from @t a
/*
aaa bbb ccc
----------- ---- -----------
1 a 1
2 b 1
3 m 1
4 b 2
5 c 1
6 m 2
7 v 1
8 m 3
9 n 1
*/Top
2 楼paoluo(一天到晚游泳的鱼)回复于 2006-07-03 16:55:23 得分 0
Select
a,
b,
(Select Count(*) From TB Where bbb=A. bbb And aaa<=A. aaa) As ccc
From TB ATop
3 楼paoluo(一天到晚游泳的鱼)回复于 2006-07-03 16:55:57 得分 0
。。。Top
4 楼fcuandy(了此残生.)回复于 2006-07-03 16:56:48 得分 0
declare @tb table (aaa char(10),bbb char(10))
insert @tb
select 1,'a'
union select 2,'b'
union select 3,'m'
union select 4,'b'
union select 5,'c'
union select 6,'m'
union select 7,'v'
union select 8,'m'
union select 9,'n'
select * from @tb
select aaa,bbb,ccc=(select count(1) from @tb b where b.aaa<=a.aaa and b.bbb=a.bbb) from @tb a
假设你的AAA字段是不重复的Top
5 楼fcuandy(了此残生.)回复于 2006-07-03 16:57:43 得分 0
我只不过比你们多打了 14 个字,另外表变量名多打了个字符,发上来就..Top
6 楼LouisXIV(夜游神)回复于 2006-07-03 16:57:53 得分 0
:)Top
7 楼fcuandy(了此残生.)回复于 2006-07-03 16:58:03 得分 0
我只不过比你们多打了 14 个字,另外表变量名多打了个字符,发上来就..Top




