关于序号的SQL
有一明细表A存储的数据如下   
 编号                  品名               数量    
 A001                  品名一         100 
 A001                  品名二         110 
 B002                  品名一         200 
 B002                  品名二         220 
 B002                  品名三         220 
 C003                  品名一         300   
 欲通过SQL得到如下结果,在原基础上加一序号 
 序号            编号                  品名               数量 
 1                     A001                  品名一         100 
 1                     A001                  品名二         110 
 2                     B002                  品名一         200 
 2                     B002                  品名二         220 
 2                     B002                  品名三         220 
 3                     C003                  品名一         300   
 原则是按“编号”排序,相同编号的序号相同,编号不同,则序号在上面的序号的基础上加1。与“品名”和“数量”无关 
------解决方案--------------------select (select count(distinct 编号) from 表 where 编号 <=t.编号) as 序号,编号,品名,数量 from 表 t
------解决方案--------------------select b.id,a.* from test a  
 inner join  
 (select code,row_number() over(order by code) as id from 
  (select distinct code from test)aa ) b 
 on a.code=b.code
------解决方案--------------------declare @a table(a int,b varchar(4),c varchar(10),d int) 
 declare @i int,@aa varchar(4) 
 set @i=0 
 set @aa= ' ' 
 insert @a(b,c,d) select * from 表A 
 update @a set a=@i,@i=(case when @aa <> b then @i+1 else @i end),@aa=b 
 select * from @A  
 ----------------------- 
 create table 表A(编号 varchar(4),品名 varchar(10),数量 int) 
 insert 表A select 
  'A001 ', '品名一 ',100 union select 
  'A001 ', '品名二 ',110 union select 
  'B002 ', '品名一 ',200 union select 
  'B002 ', '品名二 ',220 union select 
  'B002 ', '品名三 ',220 union select 
  'C003 ', '品名一 ',300 
 前台实现最好