DECLARE @Table1 TABLE
(ID int, STATUS varchar(1))
;
INSERT INTO @Table1
(ID, STATUS)
VALUES
(1, 'A'),
(1, 'A'),
(1, 'A'),
(1, 'B'),
(1, 'A'),
(2, 'C'),
(2, 'C')
;
Select *,ROW_NUMBER()OVER(PARTITION BY STATUS ORDER BY (SELECT NULL))RN from @Table1
入门结果集
ID STATUS RN
1 A 1
1 A 2
1 A 3
1 A 4
1 B 1
2 C 1
2 C 2
需要输出
ID STATUS RN
1 A 1
1 A 2
1 A 3
1 B 1
1 A 1
2 C 1
2 C 2
我想这样的..以上的结果让我的查询,其中,输出我想是我已经发布去年 – mohan111
这看起来你假设表中的行保持它们插入的顺序并将按照该顺序返回,没有这样的保证。除非您明确命令行,例如使用表中的标识列和查询中的ORDER BY'子句,可以按任意顺序返回行。 – HABO