比如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