我有一個表(表1),其具有4列比較有條件地更新表:的Oracle SQL:基於與SQL語句
UID | PID | VALUE1 | VALUE2
我還有一個SQL語句(STMT)從一些其他表返回3列:
UID | PID | VALUE1
現在,這裏是我要如何更新TABLE1條件:
首先,從與那些在TABLE1 STMT比較UID和PID對所有新的UID和PID,
對未在表1,從STMT插入新行插入到表1,設置TABLE1.VALUE2 = 0(我已經做了這一個)
在這兩個STMT和TABLE1現有的UID和PID對,這樣做:
a。如果TABLE1.VALUE2> 0,更新TABLE1.VALUE1 = STMT.VALUE1
灣如果TABLE1.VALUE2 = 0並且如果TABLE1.VALUE1!= STMT.VALUE1,則更新TABLE1.VALUE1 = STMT.VALUE1,否則不做任何事情。
我無法提出條件2的解決方案。任何幫助表示讚賞!
第2步後,最終的結果是,table1.value1的所有案件= stmt.value 1.你特別需要避免更新行相同的他們已經是價值觀,觸發器不會觸發? –
@evilotto很好,最終目的是讓TABLE1始終保持最新狀態。 –