我想基于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 server。
答案 0 :(得分:1)
你可以做类似这样的事...... 在oracle中,dual就像虚拟表。它没有任何行..它有助于创建合并查询所需的临时表 以下可能不是确切的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