update top(1) UserTask set Status=1 where UserId=10000 and AdId=1若是N>1,情况稍有点复杂:
update UserTask set Status=1 where Id=(select max(Id) from (select top(N) Id from UserTask where UserId=10000 and AdId=1 order by Id) as tab) and N<=(select COUNT(*) from UserTask where UserId=10000 and AdId=1)注意:一定要判断满足条件的记录数是否大于等于N,若省略,当满足条件记录小于N条时,被更新的是最后一条记录。
当然了,你还可以用row_number来完成:
update UserTask set Status=1 where Id=(select Id from (select row_number() over(order by Id) as RowNumber,Id from UserTask where UserId=10000 and AdId=1) as tab where RowNumber=N)以上语句在Microsoft SQL Server 2008 R2测试通过。
评论(0)
暂无评论。