--测试数据
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
*/
SQL SERVER 2000/2005/2008 一句话完成分组后加序号--【叶子】
最新推荐文章于 2025-08-24 17:01:22 发布
本文提供了一个SQL Server中使用不同版本(2000与2005/2008)进行分组并排序的具体示例。通过创建一个临时表并插入多条记录,演示了如何使用ROW_NUMBER()函数(SQL Server 2005/2008)以及自定义计数方法(SQL Server 2000)来实现相同的功能。
1939

被折叠的 条评论
为什么被折叠?



