如何使用SQL Server 2012生成自定义序列号

时间:2016-05-27 05:18:42

标签: sql sql-server-2012

有没有办法生成如下的自定义序列号? 我希望通过代码和年份分组来增加数字。

Code    Year    Number
A       2016    1
A       2016    2
A       2016    3
B       2016    1
B       2016    2
C       2016    1
A       2017    1
A       2017    2

任何建议都将不胜感激。

修改
对不起,我太暧昧了。我想在查询时生成唯一的数字,所以如果我在上面的数据上下文中使用Code:A和Year:2017询问一个新的数字,我希望数字为3.我想在将来正确得到数字我需要用数字保存代码和年份。

1 个答案:

答案 0 :(得分:2)

使用ROW_NUMBER分配NumberCodeYear分组。

SELECT *,
    Number = ROW_NUMBER() OVER(PARTITION BY Code, [Year] ORDER BY (SELECT NULL))
FROM tbl

SELECT NULL替换为您希望订单所依据的列。