gpt4 book ai didi

sql - 使用sql server 2005从另一个表更新多列

转载 作者:行者123 更新时间:2023-12-02 06:36:00 25 4
gpt4 key购买 nike

我有一个名为 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))

我还有另一个名为 table2 的表,其中我针对 table1 保留了唯一的 mobileNo。现在,如果 table1 中存在任何数据,我想针对 table1 更新 table2

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

但是我试过这样的查询

UPDATE table1
set table1.date1 =
(SELECT date1 from table2 where table2.mobileno = table1.mobileno)
Where table2.mobileno = table1.mobileno

我如何在单个查询中更新而不重复更新 30 个。日期列,请帮助我。提前致谢。

最佳答案

也许可以使用以下 UPDATE 语句避免将 TABLE2 中的 NULL 值更新为 TABLE1 中的 NOT NULL 值。

只有 ISNULL 函数被添加到上一篇文章中

update table1
set
date1 = ISNULL(t2.date1, date1),
date2 = ISNULL(t2.date2, date2)
from table2 t2
where table1.mobileno = t2.mobileno

关于sql - 使用sql server 2005从另一个表更新多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18974066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com