sqlserver 将一个表中的某些字段更新到另一个表中(转载)

您所在的位置:网站首页 用一个表的字段更新另一个表的字段 sqlserver 将一个表中的某些字段更新到另一个表中(转载)

sqlserver 将一个表中的某些字段更新到另一个表中(转载)

2024-07-15 00:11| 来源: 网络整理| 查看: 265

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3