`
hecal
  • 浏览: 75088 次
社区版块
存档分类
最新评论

关于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都支持的语法:
UPDATEA SET(A1,A2,A3)=(SELECTB1,B2,B3FROMBWHEREA.ID=B.ID)
MS SQL Server不支持这样的语法,相对应的写法为:
UPDATEA SETA1=B1,A2=B2,A3=B3 FROMALEFTJOINBONA.ID=B.ID
个人感觉MS SQL Server的Update语法功能更为强大。MS SQL SERVER的写法:
UPDATEA SETA1=B1,A2=B2, A3 = B3 FROMA,BWHEREA.ID=B.ID
在Oracle和DB2中的写法就比较麻烦了,如下:
UPDATEA SET(A1,A2,A3)=(SELECTB1,B2,B3FROMBWHEREA.ID=B.ID) WHEREIDIN(SELECTB.IDFROMBWHEREA.ID=B.ID)

======================<转载>==================================

UPDATE M_MG_TORIKUZUSHI_PPC_DETAIL TPPC_DETAIL SET (MG_HF, MG_TF, MG_PF, MG_AF, MG_LF, MG_OTHERS) = (SELECT SUM(NVL(MG_HF,0)) AS TOTAL_HF, SUM(NVL(MG_TF,0)) AS TOTAL_TF, SUM(NVL(MG_PF,0)) AS TOTAL_PF, SUM(NVL(MG_AF,0)) AS TOTAL_AF, SUM(NVL(MG_LF,0)) AS TOTAL_LF, SUM(NVL(MG_OTHERS,0)) AS TOTAL_MG_OTHERS FROM M_MG_TORIKUZUSHI_SYUUKEI TORIKUZUSI WHERE TPPC_DETAIL.TORIKUZUSHI_PPC = TORIKUZUSI.TORIKUZUSHI_PPC AND TPPC_DETAIL.SINSEI_YYYY_MM = TORIKUZUSI.SINSEI_YYYY_MM AND TORIKUZUSI.TORIKUZUSHI_PPC IN('167545562') AND TORIKUZUSI.SINSEI_YYYY_MM <=200705)

======================<原创>==================================

分享到:
评论

相关推荐

    SQL Server UPDATE语句的用法详解

    在SQL Server数据库中要想修改数据库记录,就需要用UPDATE语句,UPDATE语句就是为了改变数据库中的现存数据而存在的。这条语句虽然有一些复杂的选项,但确实是最容易学习的语句之一。这是因为在大多数情况下,这条...

    insert,update导出sql语句

    insert,update导出sql语句,很实用的小工具

    sql的update语句功能非常强大.docx

    sql的update语句功能非常强大.docx

    生成UPDATE语句

    根据表结构生成打印出根据主键update的语句

    sql的update语句功能非常强大[参考].pdf

    sql的update语句功能非常强大[参考].pdf

    SQLServer添加UPDATE回滚日志.doc

    在数据没有备份的情况下,它可以对数据进行恢复,无论是update/insert/delete都可以进行回滚操作,有demo做介绍,

    经典SQL语句大全 update select delete drop create

    经典SQL语句大全 update select delete drop create经典SQL语句大全 update select delete drop create经典SQL语句大全 update select delete drop create经典SQL语句大全 update select delete drop create

    oracle执行update语句时卡住问题分析及解决办法

    开发的时候debug到一条update的sql语句时程序就不动了,然后我就在plsql上试了一下,发现plsql一直在显示正在执行,等了好久也不出结果。但是奇怪的是执行其他的select语句却是可以执行的。 原因和解决方法 这种...

    SQL UPDATE 语句

    请注意 SQL UPDATE 语句中的 WHERE 子句! WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新! 演示数据库 在本教程中,我们将使用 RUNOOB 样本数据库。 下面是选自

    update语句的优化-oracle .pdf

    实际项目中遇到的问题总结:数据量百万级,千万级。Oracle中update语句的优化,一共四种方案,工作中遇到该类问题可以参考。

    EAS的DEP客户端脚本中执行select和update的sql语句的方法

    EAS二次开发中DEP在编辑或者列表界面写脚本时可调用的执行sql语句的方法。【本方法仅用于客户端代码中,如果是服务端代码,即对某实体进行DEP拓展,请参照官方出品DEP脚本指南】

    SQL语句表SQL语句表SQL语句表

    比较全的SQL语句 create update delete

    SQL Server中存储过程比直接运行SQL语句慢的原因

    1. 存储过程只在创造时进行编译即可,以后每次执行存储过程都不需再重新编译,而我们通常使用的SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2. 经常会遇到复杂的业务逻辑和对数据库的...

    SqlServer中批量update语句

    我们可以发现S_USER表中有个跟S_PERSON表关联的字段 那就是PERSON_ID 这也是我们要update的条件 找到这个关系以后我们就不难写sql了 update S_USER set account=p.account from S_PERSON p where p.id=S_USER....

    sql语句生成工具,insert,update

    sql语句生成工具,insert,update

    update语句

    NULL 博文链接:https://tianshi-kco.iteye.com/blog/2062057

    Sql 语句详解

    8. SQL UPDATE 语句 12 9. SQL DELETE 语句 13 10. SQL TOP 子句 13 11. SQL LIKE 操作符 15 12. SQL 通配符 16 13. SQL IN 操作符 18 14. SQL BETWEEN 操作符 18 15. SQL Alias(别名) 19 16. SQL JOIN 20 17. SQL...

    使用SQL语句批量更新数据.rar

    使用SQL语句批量更新数据.rar使用SQL语句批量更新数据.rar

    ORACLE_多表关联_UPDATE_语句

    例如: 两表(多表)关联update -- 仅在where字句中的连接 --这次提取的数据都是VIP,且包括新增的,所以顺便更新客户类别 update customers a -- 使用别名 set customer_type='01' --01 为vip,00为普通 where ...

Global site tag (gtag.js) - Google Analytics