使用条件在oracle中更新表

时间:2018-04-10 21:57:48

标签: sql oracle group-by

我有一个源表A,其值低于

Source A:

id, r_dt        cancel_dt
1   null         null
2   null         04-10-2018
3   04-08-2018   null
3   04-09-2018   null
3   null         null 

Target B  

id, t_dt 
1   04-09-2018
2   04-09-2018
3   04-08-2018

在某一天,我们可能会从来源获取重复值,我们需要应用一些条件来更新目标

所以例如:我们必须使用loan_id对数据进行分组 如果我们得到null r_dt和null c_dt那么我们什么都不做

如果我们得到带有取消dt的空dt行和带有取消取消dd的r_dt行 选择r_dt值并更新到tgt。

如果我们在group by之后得到2个r_dt行,则执行r_dt

的最大值

我怎样才能在oracle sql中提出这个逻辑

请指导我

1 个答案:

答案 0 :(得分:0)

请在下面试试,我无法验证:

更新b 设置t_dt =(选择解码(r_dt为空且cancel_dt不为空,null,r_dt不为空,Max(r_dt))来自a.id = b.id)