根据条件更新表

时间:2019-11-28 19:11:43

标签: sql oracle

如果存在ZMD2,我需要根据类型更新登台表,然后更新记录,否则更新PNTP记录。

enter image description here

UPDATE ITEMS_STAGING SET TYPE=b.TYPE,VALUE=b.VALUE
FROM ITEMS_STAGING a,ITEMS b
WHERE a.PARENT=b.PARENT

在上面的语句中,如果不存在PNTP记录,则只需要为同一父对象选择ZMD2记录。我试图为有帮助的ITEMS做UNION。

登台表输出:

enter image description here

请帮助。

谢谢

2 个答案:

答案 0 :(得分:1)

您需要使用分析函数row_number,该函数将按parent列对行进行分组以给它们编号,然后我们将使用{{1}从每组中仅获取一条记录来更新登台表}语句如下:

merge

干杯!

答案 1 :(得分:0)

您可以在下面的查询中尝试-

println(reify( println (_:String) ).tree
       .collect { case x if x.symbol != null => x.symbol.fullName } )
// List(<none>, <none>, <none>, scala.Predef, <none>, <none>, scala.Predef, <none>, <none>, scala.Predef)

我不确定您要在此表中更新什么。