admin

T-SQL 如何只更新底部/最后一行?

sql

我想更新表格中的底部/最后一行。我已尝试实施此解决方案,但似乎没有正确的语法:

UPDATE TOP(1) @ResultTable
SET PeriodLastDate=DATEADD(DAY,-1,PeriodLastDate)
ORDER BY PeriodID DESC

或者

UPDATE TOP(1) @ResultTable
SET PeriodLastDate=DATEADD(DAY,-1,PeriodLastDate)
FROM @ResultTable
ORDER BY PeriodID DESC

到目前为止,我的工作是:

UPDATE @ResultTable
SET PeriodLastDate=DATEADD(DAY,-1,PeriodLastDate)
WHERE PeriodID=(SELECT COUNT(PeriodID) FROM @ResultTable)-1

但这并不总是有效,因为在我的函数中,一些记录被删除,而且我并不总是让 PeriodIDs 增加 1。


阅读 209

收藏
2021-07-01

共1个答案

admin

;WITH CTE AS
(
SELECT TOP 1 *
FROM @ResultTable
ORDER BY PeriodID DESC
)
UPDATE CTE SET PeriodLastDate=DATEADD(DAY,-1,PeriodLastDate)

2021-07-01