我正在尝试向现有表格添加新列,其中该值为行号/排名。我需要一种方法来生成行号/排名值,并且我还需要限制受影响的行--在这种情况下,是一个字符串中包含子字符串的情况。
目前我的代码:
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() 函数创建/更新列?请注意,这是为了替换不正确但已经存在的“排名”列。