Sql 将记录索引保存到列
我想将表中每条记录的索引保存到该记录的索引列中。假设我整理了我的记录:Sql 将记录索引保存到列,sql,sql-server,Sql,Sql Server,我想将表中每条记录的索引保存到该记录的索引列中。假设我整理了我的记录: select * from Users order by DateTimeCreated 现在,假设我想在这个排序中缓存它们的位置。我想这样做: update Users set SortedIndex=GETINDEX() order by DateTimeCreated 我怎么能做这样的事?我可以用C编写,但我更喜欢一种比循环和单独设置每条记录更有效的方法。我需要在每条记录上预先确定这个数字,而不是在运行时确定。谢谢
select * from Users order by DateTimeCreated
现在,假设我想在这个排序中缓存它们的位置。我想这样做:
update Users set SortedIndex=GETINDEX() order by DateTimeCreated
我怎么能做这样的事?我可以用C编写,但我更喜欢一种比循环和单独设置每条记录更有效的方法。我需要在每条记录上预先确定这个数字,而不是在运行时确定。谢谢。试试这个
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
试试这个
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
在执行删除、插入和更新操作时,您将如何保持号码正确?在执行删除、插入和更新操作时,您将如何保持号码正确?谢谢。这是可行的,但是有人同意这是完成任务最有效的方法吗?好的,我想就是这样。谢谢你,科丁比兹!非常感谢。这是可行的,但是有人同意这是完成任务最有效的方法吗?好的,我想就是这样。谢谢你,科丁比兹!