2009-01-29 69 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()在線