SQL Dev:使用where语句从另一个表的列更新列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Dev:使用where语句从另一个表的列更新列相关的知识,希望对你有一定的参考价值。
我有以下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)
答案
更新:对于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;
以上是关于SQL Dev:使用where语句从另一个表的列更新列的主要内容,如果未能解决你的问题,请参考以下文章