我有以下2个表示例(包含更多列的大型数据库)
表1
Dirty1 code
Ne yok 553
Bufflo 5767
Ne yok -345
Tchicgo -35
Albunny 543
Dtroit -443
Bufflo -4534
Matatan -45
Ne yok -345
表2
Dirty2 Standardized
Manhatahn Manhattan
Ne yok New York
Matatan Manhattan
Brocklyn Brooklyn
Albunny Albany
Bufflo Buffalo
Baffalow Buffalo
我想用表2中的标准化城市格式更新表1,其中table1.dirty1 = table2.dirty2,代码是< 0
所以输出应该如下所示
输出表1
Dirty1 code
Ne yok 553
Bufflo 5767
New York -345
Tchicgo -35
Albunny 543
Dtroit -443
Buffalo -4534
Manhattan -45
New York -345
我还想确保表2中没有标准化表格的内容被跳过(例如:Dtroit和tchicgo)
答案 0 :(得分:0)
更新:对于Oracle-
UPDATE table1 SET table1.Dirty1= (SELECT table2.Standardized FROM table2
WHERE table1.Dirty1=table2.Dirty2)
WHERE table1.code<0 AND EXISTS (SELECT table2.Standardized FROM table2
WHERE table1.Dirty1=table2.Dirty2);
请注意,我没有使用Oracle,并且没有对其进行测试,但它应该可以正常运行。
这应该可以解决问题(MS-SQL) -
UPDATE table1 INNER JOIN table2 ON table1.Dirty1=table2.Dirty2 SET
table1.Dirty1=table2.Standardized WHERE table1.code<0;