来源:https://blog.csdn.net/qq_23888451/article/details/86615555

https://blog.csdn.net/cyxinda/article/details/78254110

一、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

此处也可以 right join 、 inner join

 方式二:

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)

注:如果要更新的表A数据量过大,而且仅更新表A的部分数据,那么,需要在前面的语句中加入where筛选要操作的数据。

四、案例:

公司做的业务有个需求是将A表中的某些字段数据,更新到B表中的相应含义的字段中。
假设user、score表的字段如下:
user表

userId username password sex addr phone
1 张珊 123 男 北京市 1562356586
2 李思 456 女 北京市 1562354256
3 王武 789 男 北京市 1562345544
4 王柳 113 男 北京市 1562445778
score表

scoreId userId username score course phone
1 1 80 语文
2 1 85 数学
3 3 52 语文
4 2 67 数学
现在score表中的username和phone字段是空的,需要从user表中,查找出相应的值插入score表中,SQL语句如下:

update score
set score.username=user.username,score.phone=user.phone
from score,user
where score.userId=user.userId

五、相关扩展

1将一张表中的数据插入到另一张表

https://www.cnblogs.com/hao-1234-1234/p/8484353.html

2跨服务器增删改查

 https://www.cnblogs.com/hao-1234-1234/p/10277324.html

sqlserver 将一个表中的某些字段更新到另一个表中(转载)的更多相关文章

  1. mysql如何更新一个表中的某个字段值等于另一个表的某个字段值

    表A和表B,现在希望更新A表,当 A.bid = B.id时,a.x = b.x, a.y=b.y,请问mysql中sql语句 update a inner join b on a.bid=b.id ...

  2. UPDATE语句:将一个表里的字段更新到另一个表的字段里的语句

    update table2 b,(select b.area_id as arid,sum(a.user_amount) as bcount from table1 a,table2 b where ...

  3. 在oracle中操作表及字段注释,查询一个表的所有字段名以及属性和约束

    1.查询表注释 SELECT * FROM USER_TAB_COMMENTS; 三列:TABLE_NAME,TABLE_TYPE,COMMENTS 2.查询字段注释 SELECT * FROM US ...

  4. oracle 批量更新之将一个表的数据批量更新至另一个表

      oracle 批量更新之将一个表的数据批量更新至另一个表 CreationTime--2018年7月3日17点38分 Author:Marydon Oracle 将一个表的指定字段的值更新至另一个 ...

  5. MySQL 实现将一个库表里面的数据实时更新到另一个库表里面

    MySQL 实现将一个库表里面的数据实时更新到另一个库表里面 需求描述:MySQL 里面有很多的数据库,这些数据库里面都有同一种表结构的表 (tb_warn_log),这张表的数据是实时更新的,现在需 ...

  6. oracle赋值问题(将同一表中某一字段赋值给另外一个字段的语句)

    将同一表中某一字段赋值给另外一个字段的语句update jxc_ckmx ckmx1 set ckmx1.ddsl = (select ckmx2.sl from jxc_ckmx ckmx2 whe ...

  7. mysql把一个表的字段update成另一个表的字段根据id

    mysql把一个表的字段update成另一个表的字段根据id 1.填充activity表里面的creator字段,用org的founderid,其中activity的orgid要和org的id对应,具 ...

  8. Oracle中用一张表的字段更新另一张表的字段

    今天在做项目的过程中,发现开发库中某张表的某字段有许多值是空的,而测试库中该字段的值则是有的. 那么,有什么办法能将测试库中该字段的值更新到开发库中呢? SQL Server中这是比较容易解决的,而O ...

  9. mysql update 将一个表某字段设为另一个表某字段的值

    表新添加了一个字段,毫无疑问是空值.所以想将另一个表的某个字段的值写入到修改的表中. sql语句不复杂,但还是记录一下,因为也查了一会,以后说不定还会用到. mysql> update cent ...

随机推荐

  1. java 465端口发送邮件

    package com.fr.function; import java.io.IOException; import java.security.Security; import java.util ...

  2. t420 win7 硬盘安装ubuntu 10.04 LTS 备忘

    http://zhangwen.sinaapp.com/?p=5 t420 win7 硬盘安装ubuntu 10.04 LTS 备忘 发表于 2011 年 10 月 25 日 对ubuntu的新版没有 ...

  3. Qt QtXml读取xml文件内容

    Qt QtXml读取xml文件内容 xml文件内容 <?xml version="1.0" encoding="UTF-8"?> <YG_RT ...

  4. 【Java】Swagger快速入门

    Swagger 简介 Swagger 是一套基于 OpenAPI 规范构建的开源工具,可以帮助我们设计.构建.记录以及使用 Rest API.Swagger 主要包含了以下三个部分: Swagger ...

  5. 【python基础】argparse模块

    参考 1. argumentparser-objects: 2. argparse.ArgumentParser()用法解析:

  6. sqlyog 社区版

    https://github.com/webyog/sqlyog-community/wiki/Downloads

  7. 【视频开发】【Live555】摄像头采集,264编码,live555直播(0)

    参看 有关live555 1.首先需要修改live555,定义从 内存中直接获取source而不是从文件读取source的类. 自己实现的类命名为 H264FramedLiveSource   /* ...

  8. com.alibaba.fastjson使用介绍

    首先,介绍一下fastjson.fastjson是由alibaba开源的一套json处理器.与其他json处理器(如Gson,Jackson等)和其他的Java对象序列化反序列化方式相比,有比较明显的 ...

  9. java8新特性(2)--接口的默认方法

    1.默认方法的定义和作用 在Java8以前的版本中,由接口定义的方法是抽象的,不包括方法体.JDK8版本的发布改变了这一点,其中给接口添加了一个新的功能:默认方法.默认方法允许为接口方法定义默认实现. ...

  10. urlencode编码 — 为什么要编码

    原文链接:https://blog.csdn.net/stpeace/article/details/82892571 参考:https://blog.csdn.net/z69183787/artic ...