我比较2个结果集,我必须根据另一个结果集中的数据更新一个结果集。我可以使用updateRow(或insertrow,如果需要的话)轻松地做到这一点。但是我还需要生成sql查询(最好使用oracle语法)并添加到sql文件中,这使我可以选择稍后更新该文件。谁能告诉我一种优雅的做法?
不完全确定您要做什么,但我相信您正在寻找从另一个表更新一个表的数据,或插入丢失的数据到第一个表时,它是在第二个。最简单的方法是使用merge:
merge into t1
using t2
on (t2.id = t1.id)
when matched
then
update
set t1.col1 = t2.col1,
t1.col2 = t2.col2,
t1.col3 = t2.col3
when not matched
then
insert
(t1.id, t1.col1, t1.col2, t1.col3)
values
(t2.id, t2.col1, t2.col2, t2.col3);
应该注意的是,t2可以用select语句替换,以防您的新数据没有以正确的格式存储在表中。
如果这不是你想要的,你可以澄清你的意思(当前数据和期望输出的一个例子将是理想的)。