WEB开发网
开发学院软件开发Delphi SQLServer中按某字段排列名次 阅读

SQLServer中按某字段排列名次

 2006-02-04 13:51:38 来源:WEB开发网   
核心提示:---居然看到有人用游标,SQL就能搞定create table Test(F1 char(10), F2 char(10))--测试表insert into Test select 'a' F1,'1' F2unionselect 'b' F1,'2'
---居然看到有人用游标,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
*/

Tags:SQLServer 字段 排列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接