欢迎光临

木子屋

标题: SQL Server更新满足条件的第N条记录

作者: dnawo

日期: 2013-06-19 02:06 PM

分类: 服务器

内容: 若是更新第1条记录，比较简单，直接用top(1)就行：
复制内容到剪贴板 程序代码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)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.957 ms

返回

标题: SQL Server更新满足条件的第N条记录

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.957 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.004 ms

返回