当前位置: 代码迷 >> Sql Server >> 怎样将a字段值相同的b字段按从1开始的顺序递增?该怎么解决
  详细解决方案

怎样将a字段值相同的b字段按从1开始的顺序递增?该怎么解决

热度:110   发布时间:2016-04-27 19:10:09.0
怎样将a字段值相同的b字段按从1开始的顺序递增?
比如1张表:
a b
-----------
str1 1
str1 1
str1 1
str2 1
str2 1
str2 1
str2 1
str2 1
str3 1
str3 1
我想变为

a b
-----------
str1 1
str1 2
str1 3
str2 1
str2 2
str2 3
str2 4
str2 5
str3 1
str3 2

请教用sql语句怎样能实现?



------解决方案--------------------
SQL code
SET NOCOUNT ONDECLARE @T TABLE (a VARCHAR(10),b INT)----------- INSERT @T SELECT 'str1'  ,1 INSERT @T SELECT 'str1'  ,1 INSERT @T SELECT 'str1'  ,1 INSERT @T SELECT 'str2'  ,1 INSERT @T SELECT 'str2'  ,1 INSERT @T SELECT 'str2'  ,1 INSERT @T SELECT 'str2'  ,1 INSERT @T SELECT 'str2'  ,1 INSERT @T SELECT 'str3' , 1 INSERT @T SELECT 'str3',  1SELECT A,B=ROW_NUMBER() OVER(PARTITION BY A ORDER BY GETDATE()) FROM @T/**A          B---------- --------------------str1       1str1       2str1       3str2       1str2       2str2       3str2       4str2       5str3       1str3       2/
------解决方案--------------------
SQL code
select a,b=row_number() over(partition by a order by a)from tb
  相关解决方案