0

我有 2 张桌子:

表格1:

NULL    NULL    Cat.XX 23   Cow.XX 87
NULL    NULL    Tiger.XX 99 Elephant.XX

Column1 和 Column2 是 ID 号,分别与 column3 和 column4 中的值相关联。

表2:

84048713    Cat.XX 23   Blah1   Blah2   Blah3   Blah4   
44008714    Elephant.XX 77  Blah1   Blah2   Blah3   Blah4   
64038715    Cow.XX 87   Blah1   Blah2   Blah3   Blah4
34058716    Tiger.XX 99 Blah1   Blah2   Blah3   Blah4
74038717    Zebra.XX 34 Blah1   Blah2   Blah3   Blah4
94098719    Whale.XX 47 Blah1   Blah2   Blah3   Blah4

我想用适当的 ID 号更新 table1 中的每一行。生成的 table1 应如下所示:

84048713    64038715    Cat.XX 23   Cow.XX 87
34058716    44008714    Tiger.XX 99 Elephant.XX

我尝试了使用 select、where 和 select replace 的各种组合(我使用 replace 是因为包含动物名称的字段中有空格)。例如,我尝试了以下操作:

select IDs from table2 where 
(select replace("Name", ' ', '') from table2
LIKE
(select replace("Name", ' ', '') from table1)

但我收到以下错误:

Msg 512, Level 16, State 1, Line 1
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

我感谢您的帮助。谢谢你。

4

3 回答 3

1
update table1 set Column1ID = (select ID from table2 where column2 = table1.column3),Column2ID = (select ID from table2 where column2 = table1.column4)
于 2013-02-05T18:14:20.607 回答
1

尝试这个;

Update t1
Set t1.col1 = case t1.col3 when t2.col2 then t2.col1 else t1.col1, 
    t1.col2 = case t1.col4 when t2.col2 then t2.col1 else t1.col2
From table1 t1 join table2 t2 
    on t1.col3 = t2.col2 or t1.col4 = t2.col2
于 2013-02-05T18:25:23.350 回答
0

在此处输入图像描述

更新 TABLE_1 SET ID = B.ID , ID2 = C.ID 从 TABLE_1 作为左外连接 TABLE_2 作为 B ON A.TEMPID = B.TEMPID 左外连接 TABLE_2 作为 C ON A.TEMPUD2 = C.TEMPID

于 2013-02-05T18:41:31.523 回答