我在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
有没有人对完成此任务的最佳方法有任何建议?
答案 0 :(得分: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 :(得分:1)
在联机丛书中查找函数row_number()和RANK()