程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> SQLServer中按某字段排列名次

SQLServer中按某字段排列名次

編輯:Delphi
---居然看到有人用游標,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
  */
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved