展开全部

分析如下

1、【如果存在测试临时表,则先e69da5e887aa62616964757a686964616f31333365666166删除,便于重复执行SQL】:

IF OBJECT_ID('tempdb..#SourceTable1') IS NOT NULL DROP TABLE #SourceTable1;

IF OBJECT_ID('tempdb..#SourceTable2') IS NOT NULL DROP TABLE #SourceTable2;

IF OBJECT_ID('tempdb..#UpdateTable') IS NOT NULL DROP TABLE #UpdateTable;

2、【创建源表1】:

CREATE TABLE #SourceTable1(

Id UNIQUEIDENTIFIER,

SCode VARCHAR(50),

SName NVARCHAR(100),

Remark NVARCHAR(500)

)

3、【创建源表2】:

CREATE TABLE #SourceTable2(

Id UNIQUEIDENTIFIER,

SCode VARCHAR(50),

SAttr1 VARCHAR(100),

SAttr2 VARCHAR(100)

)

4、【创建需要更新数据的表】:

CREATE TABLE #UpdateTable(

Id UNIQUEIDENTIFIER,

SCode VARCHAR(50),

SName NVARCHAR(100),

SAttr1 VARCHAR(100),

SAttr2 VARCHAR(100)

)

5、【插入源表1测试数据】:

INSERT INTO #SourceTable1(Id, SCode, SName, Remark) VALUES(NEWID(), 'SCode1', '更新名字1', '更新测试备注1');

INSERT INTO #SourceTable1(Id, SCode, SName, Remark) VALUES(NEWID(), 'SCode2', '更新名字2', '更新测试备注2');

INSERT INTO #SourceTable1(Id, SCode, SName, Remark) VALUES(NEWID(), 'SCode3', '更新名字3', '更新测试备注3');

-- 查询插入的结果

SELECT * FROM #SourceTable1

6、【插入源表2测试数据】:

INSERT INTO #SourceTable2(Id, SCode, SAttr1, SAttr2) VALUES(NEWID(), 'SCode1', 'SCode1-更新属性1', 'SCode1-更新属性2');

INSERT INTO #SourceTable2(Id, SCode, SAttr1, SAttr2) VALUES(NEWID(), 'SCode2', 'SCode2-更新属性1', 'SCode2-更新属性2');

-- 查询插入的结果

SELECT * FROM #SourceTable2

7、【插入#UpdateTable的原始记录】:

INSERT INTO #UpdateTable(Id, SCode, SName, SAttr1, SAttr2) VALUES(NEWID(), 'SCode1', '名字1', 'SCode1-属性1', 'SCode1-属性1');

INSERT INTO #UpdateTable(Id, SCode, SName, SAttr1, SAttr2) VALUES(NEWID(), 'SCode2', '名字2', 'SCode2-属性2', 'SCode2-属性2');

INSERT INTO #UpdateTable(Id, SCode, SName, SAttr1, SAttr2) VALUES(NEWID(), 'SCode3', '名字3', 'SCode3-属性3', 'SCode3-属性3');

-- 查询插入的结果

SELECT * FROM #UpdateTable

8、【使用联合查询,将#UpdateTable、源表1、2中相同SCode的行字段更新到表#UpdateTable】:

UPDATE ut

SET ut.SName = sc1.SName,

ut.SAttr1 = sc2.SAttr1,

ut.SAttr2 = sc2.SAttr2

FROM #UpdateTable ut, #SourceTable1 sc1, #SourceTable2 sc2

WHERE ut.SCode = sc1.SCode

AND ut.SCode = sc2.SCode

-- 查询插入的结果

SELECT * FROM #UpdateTable

扩展资料

SQL Aggregate 函数

SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。

有用的 Aggregate 函数:

1、AVG() - 返回平均值

2、COUNT() - 返回行数

3、FIRST() - 返回第一个记录的值

4、LAST() - 返回最后一个记录的值

5、MAX() - 返回最大值

6、MIN() - 返回最小值

7、SUM() - 返回总和

SQL Scalar 函数

SQL Scalar 函数基于输入值,返回一个单一的值。

有用的 Scalar 函数:

1、UCASE() - 将某个字段转换为大写

2、LCASE() - 将某个字段转换为小写

3、MID() - 从某个文本字段提取字符

4、LEN() - 返回某个文本字段的长度

5、ROUND() - 对某个数值字段进行指定小数位数的四舍五入

6、NOW() - 返回当前的系统日期和时间

7、FORMAT() - 格式化某个字段的显示方式

mysql 关联 update_关于SQL UPDATE关联更新相关推荐

  1. Hello MySQL(六)——SQL插入、更新、删除操作

    一.插入数据 1.为表的所有字段插入数据 使用基本的INSERT语句插入数据要求指定表名称和插入到新记录中的值. INSERT INTO table_name (column_list) VALUES ...

  2. sql update 不更新

    现象: 调用deviceService执行update方法后,sql语句执行成功,但是数据库未更新. 解决办法: 经过对比sql语句.查询了数据库.查了service,最后发现是mapper.xml文 ...

  3. mysql bulk update_使用SqlBulkCopy批量插入/更新数据

    usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem. ...

  4. mysql删除新添加数据_MySQL数据库基础(六)——SQL插入、更新、删除操作

    MySQL数据库基础(六)--SQL插入.更新.删除操作 一.插入数据 1.为表的所有字段插入数据 使用基本的INSERT语句插入数据要求指定表名称和插入到新记录中的值. INSERT INTO ta ...

  5. mysql执行一条sql语句的完整过程,sql语句在mysql中的执行过程

    文章目录 1. SQL语句在mysql的执行过程 一:客户端层 二:mysql服务器层 三:innoDB引擎层 2. undo日志.redo日志.binlog日志的区别? 1. SQL语句在mysql ...

  6. sql update 语句_SQL Update语句概述

    sql update 语句 In this article, we'll walk-through the SQL update statement to modify one or more exi ...

  7. sql解析json格式字段、sql关联json格式字段,mysql解析json、sql解析json字符串

    sql解析json格式字段.sql关联json格式字段,mysql解析json.sql解析json字符串 sql解析字符串 sql关联json中的某个字段 sql解析字符串 表名user_login ...

  8. jstl mysql 更新_jstl sql:update标签

    标签执行不返回数据的SQL语句(非查询语句); 例如:INSERT,UPDATE或DELETE语句. 属性 标签具有以下属性 - 属性 描述 必需 默认 sql 要执行的SQL命令(不返回结果集) 否 ...

  9. mysql update 联合更新_Mysql update多表联合更新的方法小结

    下面我建两个表,并执行一系列sql语句,仔细观察sql执行后表中数据的变化,很容易就能理解多表联合更新的用法 student表 class表 1. 执行 UPDATE student s , clas ...

最新文章

  1. 包邮免费送2022年科研人专属趣味台历,微科盟年终福利,错过悔一年!
  2. 通过 EXPLAIN 分析低效 SQL 的执行计划
  3. PAT甲级题目翻译+答案 AcWing(链表)
  4. ModuleNotFoundError: No module named 'tinymce
  5. 干货:4个小技巧助你搞定缺失、混乱的数据(附实例代码)
  6. 简单谈谈haskell
  7. VBoxManage: error: Failed to create the host-only
  8. 又是骗补贴的?清华虚拟学生华智冰翻车:AI换脸铸就人工智能
  9. 正六边形网格化(Hexagonal Grids)原理与实现
  10. 【边喝caffee边Caffe 】(三) Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type
  11. 版本控制系统(vcs)Git
  12. 科大讯飞AIUI唤醒报错25102
  13. 360云服务器关闭后,360云盘宣布关闭!7个问题回答告诉你关闭之后怎么办?
  14. 机器学习模型的超参数优化用于分子性质预测
  15. 当彗星划过天空,那好像梦幻一般的景色,真是无与伦比,美到极致,只能让人一味眺望着那无法言喻的美。
  16. [培训-无线通信基础-0]:课程概述
  17. BZOJ_4327_JSOI2012 玄武密码_AC自动机
  18. 宜信唐宁:个人投资者做好资产配置至关重要
  19. EBS-PO接收控制状态的处理
  20. 释放“数据要素”价值,聚力“数字经济”发展

热门文章

  1. win2008win7设置自动登录系统的方法(三步搞定)
  2. 设计模式学习3——装饰者模式(Decorator)
  3. redis-4.0.1安装配置(CentOS 6.6)
  4. Web 数据存储总结
  5. POJ 3784.Running Median
  6. 共享之windows与Linux
  7. 郭的好象在推销,实在内容很少.
  8. java环境变量_java环境变量
  9. 在组策略中用户策略仅对特定计算机生效,如何对本地组策略设置使之不对特定用户生效?...
  10. mysql增加字段默认位置_MySQL语句增加字段,修改字段名,修改类型,修改默认值