将ColB更新为1,直到ColA更改为止

时间:2013-02-19 23:43:17

标签: sql

我有一个看起来像的SQL表:

ColA   ColB
xyz     0
xyz     0
xyz     0
uvw     0
uvw     0
stu     0

我希望更新为:

ColA   ColB
xyz     1
xyz     2
xyz     3
uvw     1
uvw     2
stu     1

我想我需要一个带有嵌套while子句的游标,但我是所有这些的新手。任何帮助将不胜感激。 谢谢 迪克

1 个答案:

答案 0 :(得分:2)

您可以将ROW_NUMBERPARTITION BY子句一起使用。

SELECT
    ColA,
    ROW_NUMBER() OVER(PARTITION BY ColA ORDER BY ColA DESC) AS ColB
FROM MyTable

请注意,这将按任意顺序标记列。如果您有ID列,则可以ORDER BY代替。