当前位置: > 数据库 > SQL Server 2005 >

sql server 2000/2005/2008中一句话完成分组后加序号

时间:2014-09-08 21:22来源:linux.it.net.cn 作者:it

sqlserver 2000/2005/2008中一句话完成分组后加序号,挺实用的单行sql,供大家学习参考。
--测试数据 
declare @T table (id int identity,col varchar(5)) 
insert into @T 
select 'AAA' union all 
select 'AAA' union all 
select 'BBB' union all 
select 'CCC' union all 
select 'CCC' 

复制代码代码如下:
--SQL SERVER 2005/2008 
select row_number() over (partition by col order by id) as num,col from @T

结果:
/* 
num                  col 
-------------------- ----- 
1                    AAA 
2                    AAA 
1                    BBB 
1                    CCC 
2                    CCC 
*/

复制代码代码如下:
--SQL SERVER 2000 
select (select count(1) from @T where col=t.col and id<=t.id) as num ,col from @T t

结果:
/* 
num         col 
----------- ----- 
1           AAA 
2           AAA 
1           BBB 
1           CCC 
2           CCC 
*/

(责任编辑:IT)
------分隔线----------------------------