gpt4 book ai didi

SQL UPDATE TOP 与 ORDER BY?

转载 作者:行者123 更新时间:2023-12-01 23:25:27 25 4
gpt4 key购买 nike

我有以下疑问:

UPDATE TOP (@MaxRecords) Messages 
SET status = 'P'
OUTPUT inserted.*
FROM Messages
where Status = 'N'
and InsertDate >= GETDATE()

在消息表中有优先级列,我想首先选择高优先级消息。所以我需要一个 ORDER BY。但我不需要对输出进行排序,而是在更新运行之前对数据进行排序。

据我所知,不可能将 ORDER BY 添加到 UPDATE 语句中。还有其他想法吗?

最佳答案

您可以为此使用公共(public)表表达式:

;with cte as (
select top (@MaxRecords)
status
from Messages
where Status = 'N' and InsertDate >= getdate()
order by ...
)
update cte set
status = 'P'
output inserted.*

这个利用了这样一个事实:在 SQL Server 中可以更新 cte,就像可更新 View 一样。

关于SQL UPDATE TOP 与 ORDER BY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19584315/

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