sql2k下得出记录顺序号
一般会这样实现 
 use   pubs 
 go 
 create   procedure   hyc() 
 as    
 begin 
 if   object_id( '#t ')   is   not   null 
       drop   table   #t 
 select   [id]=identity(int,1,1),a.*   into   #t   from   sales 
 select   *   from   #t 
 end 
 go 
 exec   hyc 
 go 
 --有个用oracle的大姐,问我不用临时表能不能实现,由于没有表间连 
 --接,本人一时也想不到,特来问问。
------解决方案--------------------sql2k下,如果有主键可以不用临时表,否则只能通过临时表:   
 select id=(select count(1) from 表 where 主键 <=a.主键),*from 表 a
------解决方案--------------------如果有一列能完全区分大小,可用比较的方法.   
 表jh03有下列数据: 
 name score 
 aa  99 
 bb  56 
 cc  56 
 dd  77 
 ee  78 
 ff  76 
 gg  78 
 ff  50   
 1. 名次生成方式1,Score重复时合并名次 
 SELECT * , Place=(SELECT COUNT(DISTINCT Score) FROM jh03 WHERE Score > = a.Score) 
 FROM jh03 a 
 ORDER BY Place 
 结果 
 Name       Score        Place  
 ---------------- ----------------- -----------  
 aa         99.00        1 
 ee         78.00        2 
 gg         78.00        2 
 dd         77.00        3 
 ff         76.00        4 
 bb         56.00        5 
 cc         56.00        5 
 ff         50.00        6   
 2. 名次生成方式2 , Score重复时保留名次空缺 
 SELECT * , Place=(SELECT COUNT(Score) FROM jh03 WHERE Score >  a.Score) + 1 
 FROM jh03 a 
 ORDER BY Place 
 结果 
 Name       Score        Place  
 --------------- ----------------- -----------  
 aa         99.00        1 
 ee         78.00        2 
 gg         78.00        2 
 dd         77.00        4 
 ff         76.00        5 
 bb         56.00        6 
 cc         56.00        6 
 ff         50.00        8