我想基于2列执行upsert(更新或创建):
如果表中存在A列和B列,则更新值,否则使用此键创建一个新行。

//pasdo code for my query
if(table.key1 == firstKey && table.key2 == secKey){
 //update values for the row with key1, key2
} else {
//create a row with firstKey, secKey as keys
}


我在后端有一个oracle sql服务器。

最佳答案

你可以做类似的事情...
在oracle中,对偶就像虚拟表。它没有任何行..它有助于创建合并查询所需的临时表
以下可能不完全是SQL语法。

merge into table m using (select firstKey,secKey from dual d) on
(m.key1 = d.firstKey and m.key2 = d.secKey )
         when not matched then insert... -- put insert statement here
             when matched then update .. -- put statemenet here

08-04 03:11