Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将记录索引保存到列_Sql_Sql Server - Fatal编程技术网

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

在执行删除、插入和更新操作时,您将如何保持号码正确?在执行删除、插入和更新操作时,您将如何保持号码正确?谢谢。这是可行的,但是有人同意这是完成任务最有效的方法吗?好的,我想就是这样。谢谢你,科丁比兹!非常感谢。这是可行的,但是有人同意这是完成任务最有效的方法吗?好的,我想就是这样。谢谢你,科丁比兹!