当前位置:主页>Delphi教程>文章内容
SQLServer中按某字段排列名次
来源: 作者: 发布时间:2007-04-29  
---居然看到有人用游标,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
*/
 
上一篇:实现StatusBar的Flat风格   下一篇:Delphi使用方法
 
  相关文章
·实现StatusBar的Flat风格
·Delphi使用方法
·来自SVG的灵感
·在Delphi中如何把数据库中的记录引到wo
·动态SQL语句在SQLServer中非固定行的转
·用Delphi4.0直接控制Word97
·入手自制软件背单词
·Delphi数据集过滤技巧
·SQLServer中一个多用户自动生成编号的
·Delphi与Word之间的融合技术
·让你的DBGridEh的Column自动适应宽度
·术语VCL的变更:从VCL到CLX
 
【关闭窗口】
推荐本站资源
最新文章