zoukankan      html  css  js  c++  java
  • 关于SQL中的Update语句

    今天在SQL数据库操作时需要将一张表中的数据Update到另一张表中去, 可是用我以往的写法确怎么也不能成功.代码如下:

    update table1 a
          set a.Col1=b.Col2
        from table2 b
      where a.c=b.c

    上面的写法似乎是在Oracle的环境下可以实现的, (具体没有验证过) 反正在SQL Server中是无法执行. 上网找了一下终于找到了解决方法, 如下:

    Oralce和DB2都支持的语法:

    UPDATE A  SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)

    MS SQL Server不支持这样的语法,相对应的写法为:

    UPDATE A     SET A1 = B1, A2 = B2, A3 = B3     FROM A LEFT JOIN B ON A.ID = B.ID

    个人感觉MS SQL Server的Update语法功能更为强大。MS SQL SERVER的写法:

    UPDATE A     SET A1 = B1, A2 = B2, A3 = B3    FROM A, B WHERE A.ID = B.ID

    在Oracle和DB2中的写法就比较麻烦了,如下:

    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)

  • 相关阅读:
    和大家一起了解Windows Server 2016 License许可证授权方式
    centos的cockpit安装使用
    Nscan-20150223
    JexBoss-20170328
    InsightScan-20150320
    Clusterd-20151119
    BBScan-20200419
    Astra-20190405
    为什么计算机计算时间要从1970年开始
    Appium环境搭建
  • 原文地址:https://www.cnblogs.com/arxive/p/5928882.html
Copyright © 2011-2022 走看看