gpt4 book ai didi

sql-server - SQL Server : UPDATE a table by using ORDER BY

转载 作者:行者123 更新时间:2023-12-01 18:18:33 24 4
gpt4 key购买 nike

我想知道是否有办法在更新表时使用 order by 子句。我正在更新一个表并设置一个连续的数字,这就是更新顺序很重要的原因。使用以下sql语句,我能够在不使用游标的情况下解决它:

DECLARE @Number INT = 0

UPDATE Test
SET @Number = Number = @Number +1

现在我想做的是像这样的 order by 子句:

 DECLARE @Number INT = 0

UPDATE Test
SET @Number = Number = @Number +1
ORDER BY Test.Id DESC

我读过:How to update and order by using ms sql此问题的解决方案并不能解决排序问题 - 它们只是过滤应用更新的项目。

保重,马丁

最佳答案

没有。

不是一种有记录的 100% 支持的方式。有时用于计算运行总计的方法称为“quirky update”,该方法表明如果满足某些条件,它可能会按聚集索引的顺序更新,但据我所知,这完全依赖于经验观察而不是任何保证。

但是您使用的是哪个版本的 SQL Server?如果 SQL2005+,您也许可以使用 row_number 和 CTE 执行某些操作(您可以更新 CTE)

With cte As
(
SELECT id,Number,
ROW_NUMBER() OVER (ORDER BY id DESC) AS RN
FROM Test
)
UPDATE cte SET Number=RN

关于sql-server - SQL Server : UPDATE a table by using ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3439110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com