当前位置:首页 > 开发 > 数据库 > 正文

批量更新某一查询结果集的第N条到第M条的记录的SQL(DB2)

发表于: 2008-05-04   作者:crabdave   来源:转载   浏览:
摘要: 问题:在项目开发中,我们有时候需要根据一些限制条件查询出一个结果集后,再将这个结果集的比如前10行进行某一update操作,后10行再进行另一个update操作。 解决方案:1)根据限制条件查询出结果集(该结果集应该以其主键进行排序),在该结果集上给各行记录进行编号。2)根据各行记录的编号取出一次取出前10行的记录或后10行的记录。3)进行各自的update操作。 参考实现:以下将以我在项目中

问题:在项目开发中,我们有时候需要根据一些限制条件查询出一个结果集后,再将这个结果集的比如前10行进行某一update操作,后10行再进行另一个update操作。

解决方案:
1)根据限制条件查询出结果集(该结果集应该以其主键进行排序),在该结果集上给各行记录进行编号。
2)根据各行记录的编号取出一次取出前10行的记录或后10行的记录。
3)进行各自的update操作。

参考实现:
以下将以我在项目中多次用到的SQL为例。
代码如下:
update tableName b
set b.A=2 ,b.B=current date  --B字段为日期类型
where exists (
   select 1 from (
      select a.id,row_number()over(order by a.id) req --以tableName表的主键id字段进行排序
         from tableName a where a.C =22 and a.D=1) c --加上查询结果集的限制条件
  where b.id=c.id and c.req>=1 and c.req<=3);--将要更新查询结果集的第1到第3条记录

批量更新某一查询结果集的第N条到第M条的记录的SQL(DB2)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号