插入基于另一列值初始化的增量编号

时间:2013-12-29 06:57:42

标签: sql sql-server sql-server-2008 stored-procedures

我有一个看起来像这样的表:

QNo  |  ANo   | Some Text Column
-----------------------------------
1
1
1
1
2
2
2
2
3
3
3
3

我想在存储过程中执行的操作是填充中间列,并在第一列更改值时进行初始化,如下所示:

QNo  |  ANo   |  Some Text Column
-----------------------------------
1   |     1
1   |     2
1   |     3
1   |     4
2   |     1
2   |     2
2   |     3
2   |     4
3   |     1
3   |     2
3   |     3
3   |     4

这需要在插入时完成,因为该列是QNo的PK的一部分。永远是4,永远不会少或多。

有办法吗?除了使用循环还是迭代?

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

你在寻找这个

SELECT QNo, ROW_NUMBER() OVER(PARTITION BY QNo ORDER BY ANo) AS IncrementalNo
FROM   TABLE