首页 > 学院 > 开发设计 > 正文

SQLServer中按某字段排列名次

2019-11-18 18:15:11
字体:
来源:转载
供稿:网友
---居然看到有人用游标,SQL就能搞定----

create table Test
(F1 char(10),
 F2 char(10))

--测试表

insert into Test 
select 'a' F1,'1' F2
union
select 'b' F1,'2' F2
union
select 'c' F1,'3' F2
union
select 'd' F1,'3' F2
union
select 'e' F1,'4' F2
union
select 'f' F1,'4' F2
union
select 'g' F1,'4' F2
union
select 'h' F1,'7' F2
union
select 'i' F1,'9' F2

--插入数据

select id=identity(int,0,1),f1,f2 into #t from test order by F2 desc

select a.f1,a.f2,a.id+1-cast(id-cc-minn as Char(10)) as  [名次]
from #t a,
(select f2,cc,minn  from 
  (select  f2,count(*)as cc,min(id)-count(*) as minn from #t group by f2) t)b
where a.f2=b.f2
order by a.f2 desc

--测试

drop table #t
drop table test

--删除表
/*

i          9          1
h          7          2
g          4          3
e          4          3
f          4          3
c          3          6
d          3          6
b          2          8
a          1          9
*/

上一篇:OOP程序设计实践

下一篇:实现StatusBar的Flat风格

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
学习交流
热门图片

新闻热点

疑难解答

图片精选

网友关注