如何更新 SQL Server 中的前 1 行 [英] How to update top 1 row in SQL Server
本文介绍了如何更新 SQL Server 中的前 1 行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想更新表格中的最新行.为此,我可以使用
I want to update latest row in the table. For that I can use
select top 1 ...
但是如何通过更新来做到这一点?
but how to do this with update?
DECLARE @Result nvarchar(50)
SET @Result = (select top 1 ROUND(SUM(DATEDIFF(SS,CheckIn,CheckOut) / 60.0 / 60.0),2) from CheckInCheckOut)
update CheckInCheckOut
set CountHours= @Result
where UserId_Fk = 3
我想这样做:
update top 1 CheckInCheckOut
示例将不胜感激.
编辑
我得到了正确的查询:
DECLARE @Result nvarchar(50)
SET @Result = (select top 1 ROUND(SUM(DATEDIFF(SS,CheckIn,'2014-05-15 03:30:32.507') / 60.0 / 60.0),2) from CheckInCheckOut where UserId_Fk=3 order by CheckInCheckOutId desc)
update CheckInCheckOut
set CheckOut='2014-05-15 03:30:32.507',CountHours=@Result
where CheckInCheckOutId = (select top (1) CheckInCheckOutId
from CheckInCheckOut
where UserId_Fk = 3
order by CheckInCheckOutId desc )
但我收到此错误
'Column "CheckInCheckOut.CheckInCheckOutId" is invalid in the ORDER BY clause because it is not contained in either an aggregate function or the GROUP BY clause.
'
如何在我的选择语句中使用 order by?
How can I use order by in my select statement?
推荐答案
试试这个:
UPDATE CheckInCheckOut
SET CountHours = @Result
WHERE UserId_Fk = (SELECT TOP 1 UserId_Fk
FROM CheckInCheckOut
ORDER BY [Your_Sort_Column])
这篇关于如何更新 SQL Server 中的前 1 行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文