Update 两个表之间数据更新头条 - 乐橙lc8

Update 两个表之间数据更新头条

2019-02-10 10:43:51 | 作者: 嘉懿 | 标签: 数据,字段,子句 | 浏览: 3509


今日遇到一个问题,就是在本来的一个表的基础上添加两个字段,而且依据历史数据和一个计算方法把这两个字段补齐。
到网上查了一下。

一、当用一个表中的数据来更新另一个表中的数据,T-SQL供给多种写法(下面列出了二种),但主张用第一种写法,尽管传统,但结构明晰。

而且要注意,当用一个表中的数据来更新另一个表中的数据时,二个表必定要有相关!

1.

update t1
  set t1.c2 = t2.c2
  from t2

where t1.c1 = t2.c1

2.

Update t1
  set t1.c2 = t2.c2

from t1 inner join t2
  on t1.c1 = t2.c1

二、FROM 子句中指定的表的别号不能作为 SET column_name 子句中被修正字段的限定符运用。
  例如,下面的内容无效:

UPDATE titles

SET t.ytd_sales = t.ytd_sales + s.qty

FROM titles t, sales s

WHERE t.title_id = s.title_id

AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

若要使上例合法,请从列名中删去别号 t 或运用自身的表名。

1.

UPDATE titles

SET ytd_sales = t.ytd_sales + s.qty

FROM titles t, sales s

WHERE t.title_id = s.title_id

AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

2.

UPDATE titles

SET titles.ytd_sales = t.ytd_sales + s.qty

FROM titles t, sales s

WHERE t.title_id = s.title_id

AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表乐橙lc8立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章