SQL Server 在更新语句中排序
Posted
技术标签:
【中文标题】SQL Server 在更新语句中排序【英文标题】:SQL Server order by in an update statement 【发布时间】:2020-05-17 17:22:04 【问题描述】:我有这个查询,但我似乎无法弄清楚如何将它与 order by 结合使用。这是查询:
UPDATE TOP 100 Kist SET Stapel ='" + Stapel + "' WHERE Row ='" + Row + "'"
“kist”中的每一行都有一个日期,我想使用这些日期来订购我的更新声明。像这样:
UPDATE TOP 100 Kist SET Stapel ='" + Stapel + "' WHERE Row ='" + Row + "'"
ORDER BY Date ASC
但这不起作用。
任何帮助将不胜感激。
【问题讨论】:
可能重复***.com/questions/2334712 这里似乎有些不对劲。 where 子句中有语法错误。这就是你所说的“不起作用”吗?这是某种动态 sql 吗? SQL Injection alert - 您应该不将您的 SQL 语句连接在一起 - 使用 参数化查询 来避免 SQL 注入 - 查看Little Bobby Tables @Smor,这似乎可能是错误的,因为它是一个包含 C# 变量的查询.. 【参考方案1】:您需要在派生表(子查询或通用表表达式)中选择要更新的行,然后更新:
with cte as (select top (100) stapel from kist where row = @row order by date)
update cte set stapel = @stapel
【讨论】:
CTE,或UPDATE FROM query
,或UPDATE FROM SELECT
***.com/questions/2334712以上是关于SQL Server 在更新语句中排序的主要内容,如果未能解决你的问题,请参考以下文章