【发布时间】:2014-09-10 19:53:15
【问题描述】:
我喜欢在一个列上进行匹配并更新两个表之间另一列的值。让我演示一下我喜欢它如何更新。
例子:
-- 我下面有Table1和Table2
表 1:
Name Number
--------------
abc 1111
abc 2222
abc 3333
xyz 4444
xyz 5555
xyz 6666
表2:
Name Number
-------------
abc 9999 (already exists, before updated)
abc NULL
abc NULL
abc NULL
abc NULL
abc NULL
abc NULL
xyz NULL
xyz NULL
xyz NULL
xyz NULL
xyz NULL
xyz 8888 (already exists, before updated)
我想在 Table1 和 Table2 之间进行匹配,并更新 Table2 以获取空白 (NULL) 的匹配名称,以及 Table1 中的第一个匹配记录。如您所见,“abc”只有 3 条记录需要更新,而您看到 Table2 中只有前 3 条空白(NULL)被更新。
Table2(更新后)
Name Number
--------------
abc 9999 (already exists, before updated)
abc 1111
abc 2222
abc 3333
abc NULL
abc NULL
abc NULL
xyz 4444
xyz 5555
xyz 6666
xyz NULL
xyz NULL
xyz 8888 (already exists, before updated)
我不确定这是否可能。请帮忙。
谢谢,
【问题讨论】:
-
“第一”,按什么排序?还有你用的是什么 rdbms?
-
不需要按照顺序,只要匹配任何第一个可用的空白即可。谢谢
-
那么你想使用相同的第一个数字还是你想使用不同的数字?您想要的结果包含更新后
abc的不同数字。 -
对不起,我更新了我的帖子。基本上,'abc", "9999" 和 "xyz" 8888 已经存在,不要更新已经有值的。我只想找到刚刚的空/空白/Null 并更新它们。
-
...您只想更新这么多在 table1 中有对应项的记录?所以你不想取任意数量的同名来更新table2中的所有空记录?
标签: sql sql-server-2008