在同一个循环中循环两个游标

时间:2014-02-07 06:32:49

标签: sql oracle plsql

我有两张桌子;在数据转换过程中,表1中的列用来自表2中相同列的数据更新,但错过了其中一个条件,其更新了具有相同值的多个条目。

Table 1:
col1   col2   col3   col4   col5
abc    def    100    1.0    XYZ
abc    def    101    1.0    XYZ
abc    def    102    1.0    XYZ
bcd    dff    103    1.0    WXY
bcd    dff    104    1.0    WXY
bcd    dff    105    1.0    WXY

Table 2:
col1   col2   col3   col4
abc    def    1.0    XYZ    
abc    def    1.0    YZ1
abc    def    1.0    YZ2
bcd    dff    1.0    WXY
bcd    dff    1.0    WX1
bcd    dff    1.0    WX2

我想用表2中第4列的数据更新表1中的第5列。 任何帮助表示赞赏。

更新后的预期表1

Updated Table 1
col1   col2   col3   col4   col5
abc    def    100    1.0    XYZ
abc    def    101    1.0    YZ1
abc    def    102    1.0    YZ2
bcd    dff    103    1.0    WXY
bcd    dff    104    1.0    WX1
bcd    dff    105    1.0    WX3

1 个答案:

答案 0 :(得分:0)

 UPDATE TABLE1 A
SET A.COL5 =(SELECT COL4 FROM TABLE2 B WHERE A.COL1=B.COL1 AND A.COL2=B.COL2 AND A.COL3=B.COL3 AND A.COL4=B.COL4)

我不确定我是否得到了您的问题,但这似乎是解决方案。