2009-01-29 90 views
0

我在SqlServer的9的表与以下形式的数据生成序列

Code Number 
J  0 
J  5 
J  8 
Y  2 
Y  8 

我想添加具有与数字的用于每个码的内部序列的号码的列,以便我的桌子看起来像这样;

Code Number Seq 
J  0  1 
J  5  2 
J  8  3 
Y  2  1 
Y  8  2 

有没有人有任何建议,以最好的方式来实现这一目标?

回答

5

看那ROW_NUMBER()功能。

DECLARE @Number TABLE (
    Code  nvarchar(1) 
, Number  int 
) 


INSERT @Number VALUES ('J', 0) 
INSERT @Number VALUES ('J', 5) 
INSERT @Number VALUES ('J', 8) 
INSERT @Number VALUES ('Y', 2) 
INSERT @Number VALUES ('Y', 8) 


SELECT * FROM @Number 


SELECT Code 
,  Number 
,  ROW_NUMBER() OVER(PARTITION BY Code ORDER BY Code) AS Seq 
FROM @Number 
1

查找书籍中的功能ROW_NUMBER()和RANK()在线