打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
DB2中的update

DB2中的update

在DB2数据库环境下:
  假设有表A,B两张表,有下列UPDATE语句:
    UPDATE A
    SET A1 = (SELECT B1 FROM  B WHERE A.ID = B.ID)   
对于上面的语句,表明是要对表A所有行的A1字段进行update:对满足WHERE A.ID = B.ID的行,则进行更新A1=B1;对不满足该条件的行,则对A1更新为A1=null.
 
若对表A的字段A1,想update的是:满足A.ID = B.ID的行,进行更新A1=B1,不满足该条件的行,则不进行更新,SQL语句为:
  UPDATE A
    SET A1 = (SELECT B1 FROM B WHERE A.ID = B.ID)
    WHERE ID IN (SELECT B.ID FROM B WHERE A.ID = B.ID)
其中,上面where语句的作用是限制更新条件:A.ID = B.ID,关于这一点,DB2数据库有点烦人,它不能支持下列形式的update语句:
   UPDATE A
      SET A1 = B1
      FROM A, B WHERE A.ID = B.ID
若能支持这样的语法形式,则再写原来的SQl语句就会简洁易懂多了.只可惜,强大的DB2并不支持这种语法格式.
另外,上面更新的只是一个字段,DB2可以同时更新几个字段:
    UPDATE A
      SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID);
 
   UPDATE A
     SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)
     WHERE ID IN (SELECT B.ID FROM B WHERE A.ID = B.ID);
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【数据库】SQL语句之修改语句(INSERT,UPDATE,DELETE)_一再叠唱.的博客-CSDN博客
Update语句中使用聚合函数Sum
MongDB&SQL语法对照 | 大中华官方唯一支持
【数据库】【sqlite】sqlite多表关联update 列值修改
SQL Server 中 ROWLOCK 行级锁
MYSQL语句中的增删改查
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服