zoukankan      html  css  js  c++  java
  • sql update select(使用select结果进行update)

    1.情景展示

      现在有一需求:

      如上图所示,需将指定记录集的指定字段更新成该条记录的对应的字段值,使用一条sql如何实现?

    2.原因分析

      要更新的记录及字段:

      将要更新的字段值: 

         

    3.oracle

    UPDATE CZ_UNITINFO 
    SET ( APPID, APPKEY, CODE_CZ, CRECODE, `X509`, BILLCODE )=(
    	SELECT
    		T2.APPID,
    		T2.APPKEY,
    		T2.CODE_CZ,
    		T2.CRECODE,
    		T2.`X509`,
    		T2.BILLCODE 
    	FROM
    		CZ_UNITINFO T2 
    	WHERE
    		T2.INVOICINGPARTYNAME = '平舆县阳城镇中心卫生院' 
    	) 
    WHERE
    	INVOICINGPARTYNAME LIKE '%尉氏%';

    4.mysql

      需要使用内连接INNER JOIN才能实现:

      把查询结果放到内联接中,我这里只有单条查询结果,如果是多条查询结果的话,要想实现一一对照进行更新,where条件就需要将t2表和t1表进行关联了;

    UPDATE CZ_UNITINFO2 T1
    INNER JOIN ( SELECT APPID, APPKEY, CODE_CZ, CRECODE, `X509`, BILLCODE FROM CZ_UNITINFO2 WHERE INVOICINGPARTYNAME = '阿里巴巴' ) T2 
    SET T1.APPID = T2.APPID,
    T1.APPKEY = T2.APPKEY,
    T1.CODE_CZ = T2.CODE_CZ,
    T1.CRECODE = T2.CRECODE,
    T1.`X509` = T2.`X509`,
    T1.BILLCODE = T2.BILLCODE 
    WHERE
    	T1.INVOICINGPARTYNAME LIKE '%腾讯%';
    

    写在最后

      哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

     相关推荐:

  • 相关阅读:
    echarts使用
    Nutch插件系统
    linux命令总结
    linux命令行快捷键
    每日一笔
    Hadoop参数调优
    rsync用于同步目录
    hadoop遇到的问题(汇总)
    linux历史命令
    hadoop 编译代码及运行
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/14793997.html
Copyright © 2011-2022 走看看