我想将表中每条记录的索引保存到该记录的索引列中。所以我要说我对记录进行了排序:
select * from Users order by DateTimeCreated
现在,让我们说我想在这个排序中缓存他们的位置。我想做这样的事情:
update Users set SortedIndex=GETINDEX() order by DateTimeCreated
我该怎么办?我可以用C#编写代码,但我更喜欢一种比循环和单独设置每条记录更有效的方法。我需要预先确定的这个数字(写在每条记录上)而不是在运行时确定。谢谢。
答案 0 :(得分:4)
试试这个
update users set SortedIndex=row from
(
select userid, row_number() over(order by DateTimeCreated desc) as row from users
) u
where users.userid = u.userid