Jaa*_*aan 2 sql t-sql sql-server
我有一个主表名称table1,我mobileNo每天存储或更新数据一个月.
;WITH table1 AS (SELECT * FROM (VALUES
(9999999999, '01/10/2013', NULL, NULL, NULL, NULL),
(9999999999, NULL, '02/10/2013', NULL, NULL, NULL),
(9999999999, NULL, NULL, '03/10/2013', NULL, NULL),
(9999999999, NULL, NULL, NULL, '04/10/2013', NULL),
(9999999999, NULL, NULL, NULL, NULL, '30/10/2013'),
(9999999999, NULL, NULL, NULL, NULL, NULL),
(8888888888, '01/10/2013', NULL, NULL, NULL, NULL),
(8888888888, NULL, '02/10/2013', NULL, NULL, NULL),
(8888888888, NULL, NULL, '03/10/2013', NULL, NULL),
(8888888888, NULL, NULL, NULL, '04/10/2013', NULL),
(8888888888, NULL, NULL, NULL, NULL, '30/10/2013'))
as t(mobileno,date1,date2,date3,date4,date30))
Run Code Online (Sandbox Code Playgroud)
我有另一个表名称table2 ,我mobileNo对table1 保持独特.现在我想更新table2,table1如果存在任何数据table1.
mobileno date1 date2 date3 date4 date30
--------------- ---------- ---------- ---------- ---------- ----------
8888888888 01/10/2013 02/10/2013 03/10/2013 04/10/2013 30/10/2013
9999999999 01/10/2013 02/10/2013 03/10/2013 04/10/2013 30/10/2013
Run Code Online (Sandbox Code Playgroud)
但是我尝试了这样的查询
UPDATE table1
set table1.date1 =
(SELECT date1 from table2 where table2.mobileno = table1.mobileno)
Where table2.mobileno = table1.mobileno
Run Code Online (Sandbox Code Playgroud)
如何更新单个查询而不重复更新30个.日期列,请帮帮我.提前致谢.
也许可以使用以下UPDATE语句来避免来自TABLE2的NULL值到TABLE1中的UPDATE NOT NULL值.
只有ISNULL功能被添加到上一篇文章中
update table1
set
date1 = ISNULL(t2.date1, date1),
date2 = ISNULL(t2.date2, date2)
from table2 t2
where table1.mobileno = t2.mobileno
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18078 次 |
| 最近记录: |