问题:在项目开发中,我们有时候需要根据一些限制条件查询出一个结果集后,再将这个结果集的比如前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条记录
分享到:
相关推荐
SQL查找某记录的前后N条数据 SQL查找某记录的前后N条记录
但万能数据库查询分析器却给你提供了这样的便利,它可以向DBMS一次提交多条SQL语句,并且它还会向你返回每条SQL语句执行所需要的时间、受影响的记录(或者返回的记录)条数。如果其中某些SQL语句有错误,它还会给你返回...
T-SQL语句主要用于取n到m条记录,有效的利用SQL 资源
在DB2连接时,客户端出现 SQL1032N的错误有可能是DB2的认证信息过期了,或者启动DB2启动不了、列出db2 list active database等等,有报错包里面有错误的解释、操作的文件和把DB2修改成永久的的文件
sql server 2005 批量更新,无需工具,实用自己的内部存贮过程
为了弥补DB2一些客户端无法批量导出insert语句备份数据,特为此做了此工具,本工具可以批量导出DB2数据库的insert语句,可以更方便,而且已经过大量实践验证测试。慢慢体验吧!!!呵呵...
用一条SQL语句将数据表中某列更新到另一个数据表里
SQL查询当前数据上一条和下一条的记录,管用,仅供参考!!!
2.支持将记录集导入为txt、xml以及wps excel或者office excel文件中,对超过65536行的查询结果集自动拆分工作表。 3.支持查询结果在水晶报表工具简单展示。 4.支持将查询出的结果集,批量复制到多个sql server服务器...
以前linqtosql跟新数据只能一条一条sql语句更新,现在解决linqtosql批量更新的问题
DB2数据库SQL注入手册1
db2常用语句、db2常用语句、db2常用语句、db2常用语句、db2常用语句、db2常用语句、db2常用语句、db2常用语句
DB2 SQL Reference,DB2 SQL参考手册
DB2 SQL 语法 速查
资源名称:DB2 SQL性能调优秘笈资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
mysql中有种可以通过join相关操作进行表与表之间的方式查询不同结果集,但是在一对多的情况下,关键查询的结果是多条的.例如:班级和学习的关系,我想很直观的看到班级和学生的情况,列表显示出班级的信息和班级的男生...
运用SQL随机抽取N条记录的方法,初学者
sql查询表中某字段下所有重复的记录,删除某字段下重复记录最小的那笔记录
SQL把一条记录金额平分到n个人并进行汇总.txt,这里说的是Access数据库中,如何将同一条记录金额平分到n个人里,金额会按照实际人数进行平分,空的则不平分,如:一条记录有三个营业员字段,但是实际不知道有几个...
IBM DB2SQL信息