我正在尝试使用ROW_NUMBER()更新列,但有时会工作,出了什么问题?这是指令:
update temp1 set temp1.RowNumber = m.RowID
from
(
select ROW_NUMBER() OVER (ORDER BY t.id_pv) as 'RowID', id_pv
from temp1 t
) m
where temp1.id_pv = m.id_pv
以下是更新前后表的两列
如果我只跑:
select ROW_NUMBER() OVER (ORDER BY t.id_pv) as 'RowID', id_pv from temp1 t
它就像一个魅力。想法?
答案 0 :(得分:1)
如果id_pv
不唯一,则select不会产生稳定的结果。您可能需要添加另一个ORDER BY
子句唯一的列来稳定排序。这应该会产生可重复的结果。