我正在尝试向现有表添加一个新列,其中值是行号/排名。我需要一种方法来生成行号/排名值,并且我还需要限制受影响的行——在这种情况下,字符串中存在子字符串。
现在我有:
UPDATE table
SET row_id=ROW_NUMBER() OVER (ORDER BY col1 desc) FROM table
WHERE CHARINDEX('2009',col2) > 0
我得到这个错误:
Windowed functions can only appear in the SELECT or ORDER BY clauses.
(同样的错误RANK()
)
有没有办法使用 ROW_NUMBER() 函数创建/更新列?仅供参考,这是为了替换不正确的、已经存在的“等级”列。