sqlserver 将一个表中的某些字段更新到另一个表中(转载)
来源: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跨服务器增删改查
sqlserver 将一个表中的某些字段更新到另一个表中(转载)的更多相关文章
- 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 ...
 - UPDATE语句:将一个表里的字段更新到另一个表的字段里的语句
		
update table2 b,(select b.area_id as arid,sum(a.user_amount) as bcount from table1 a,table2 b where ...
 - 在oracle中操作表及字段注释,查询一个表的所有字段名以及属性和约束
		
1.查询表注释 SELECT * FROM USER_TAB_COMMENTS; 三列:TABLE_NAME,TABLE_TYPE,COMMENTS 2.查询字段注释 SELECT * FROM US ...
 - oracle 批量更新之将一个表的数据批量更新至另一个表
		
oracle 批量更新之将一个表的数据批量更新至另一个表 CreationTime--2018年7月3日17点38分 Author:Marydon Oracle 将一个表的指定字段的值更新至另一个 ...
 - MySQL 实现将一个库表里面的数据实时更新到另一个库表里面
		
MySQL 实现将一个库表里面的数据实时更新到另一个库表里面 需求描述:MySQL 里面有很多的数据库,这些数据库里面都有同一种表结构的表 (tb_warn_log),这张表的数据是实时更新的,现在需 ...
 - oracle赋值问题(将同一表中某一字段赋值给另外一个字段的语句)
		
将同一表中某一字段赋值给另外一个字段的语句update jxc_ckmx ckmx1 set ckmx1.ddsl = (select ckmx2.sl from jxc_ckmx ckmx2 whe ...
 - mysql把一个表的字段update成另一个表的字段根据id
		
mysql把一个表的字段update成另一个表的字段根据id 1.填充activity表里面的creator字段,用org的founderid,其中activity的orgid要和org的id对应,具 ...
 - Oracle中用一张表的字段更新另一张表的字段
		
今天在做项目的过程中,发现开发库中某张表的某字段有许多值是空的,而测试库中该字段的值则是有的. 那么,有什么办法能将测试库中该字段的值更新到开发库中呢? SQL Server中这是比较容易解决的,而O ...
 - mysql update 将一个表某字段设为另一个表某字段的值
		
表新添加了一个字段,毫无疑问是空值.所以想将另一个表的某个字段的值写入到修改的表中. sql语句不复杂,但还是记录一下,因为也查了一会,以后说不定还会用到. mysql> update cent ...
 
随机推荐
- Android: 判断当前手机品牌(转)
			
参考资料 Android判断手机ROM 正文 有时候需要判断手机系统的ROM,检测ROM是MIUI.EMUI还是Flyme,可以使用getprop命令,去系统build.prop文件查找是否有对应属性 ...
 - ArrayList: java之ArrayList详细介绍(转)
			
1 ArrayList介绍 ArrayList简介 ArrayList 是一个数组队列,相当于 动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractList,实现了List ...
 - Linux-flock文件锁的使用
			
在多个进程同时操作同一份文件的过程中,很容易导致文件中的数据混乱,需要锁操作来保证数据的完整性,这里介绍的针对文件的锁,称之为“文件锁”-flock. flock,建议性锁,不具备强制性.一个进程使用 ...
 - spring boot 配置虚拟目录
			
如上图,关键地方有两个: 1.下方的 web.upload-path (配置本地文件路径) 2.上方一串配置,具体代码如下: profiles: include: paperIdentify acti ...
 - [LeetCode] 156. Binary Tree Upside Down 二叉树的上下颠倒
			
Given a binary tree where all the right nodes are either leaf nodes with a sibling (a left node that ...
 - JIT(just in time)即时编译器
			
JIT(just in time) 前端vs后端 在编译原理中,通常将编译分为前端和后端.其中前端会对程序进行词法分析.语法分析.语义分析,然后生成一个中间表达形式(称为IR:Intermediate ...
 - ASP.NET Core Restful  Web API 相关资源索引
			
GraphQL 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(上) 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(下) [视频] 使用ASP.NET C ...
 - hashmap源码解析,JDK1.8和1.7的区别
			
背景:hashmap面试基础必考内容,需要深入了解,并学习其中的相关原理.此处还要明白1.7和1.8不通版本的优化点. Java 8系列之重新认识HashMap Java 8系列之重新认识HashMa ...
 - js  arguments
			
偶然碰见一个有意思的题 <script> var length = 10; function fn() { console.log( this.length ); // 10 } var ...
 - Qt qml调试,qml性能分析和优化工具
			
QML语言为qt推出的用于界面编程的语言. 1)如何在qt creator中进行调试qml: 以Qt Creator 4.6.2为例: 在qt creator的debug模式下,可以直接在qml中打断 ...