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

批量更新某一查询结果集的第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

    震惊

    震惊

编辑推荐
从Table 表中取出第 m 条到第 n 条的记录:(Not In 版本) SELECT TOP n - m + 1 * FROM Table WHERE
1,sql查询发生在昨天的记录 SELECT * FROM `articles` WHERE created_at>=(current_date - inte
<!--摘要--> 例如上表(stu)中显示的内容,需要查询sma列第三高的SQL语句如下 select a.* fr
下文为您介绍的是使用 SQL语句查询每个分组的前N条记录的实现方法,如果您在此方面曾经遇到过问题,
1、查询所有数据 use MengYou_SQL select * from pifa_Company where gs_passed=1 and on_top=1 and
SELECT COUNT(1) FROM TXSJL 耗费一分钟多,创建所引耗费 1小时50分钟左右。 这么海量的数据,平生
SELECT COUNT(1) FROM TXSJL 耗费一分钟多,创建所引耗费 1小时50分钟左右。 这么海量的数据,平生
问题描述如下: 有一些program,每个program可能暂时无联系人,有一个联系人或不止一个联系人。需要
使用传入的总记录数实现一条sql语句完成分页查询 问题:在传统的分页查询的实现中不可避免的需要两
今天在看视频教程的时候,听到“杨中科”老师说有很多大公司,在面试的时候常常问一些基础的东西,
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号