我们正在使用Db visualizer Pro 12 edition来处理Oracle DB。
TableA
Id batchId requestId Filename
100 Btch100 Rqt1 ABc.zip
101 Btch100 Null Abc213.txt
102 Btch100 Null Abc5673.pdf
103 Btch100 Null Afdc213.txt
104 Btch101 Rqt2 Abc213.txt
105 Btch101 Null Bbc213.txt
106 Btch102 Null zbc213.txt
107 Btch102 Rqt3 z6gt213.txt
字符串
我需要更新表中与同一批ID匹配的requestid
Id batchId requestId Filename
100 Btch100 Rqt1 ABc.zip
101 Btch100 Rqt1 Abc213.txt
102 Btch100 Rqt1 Abc5673.pdf
103 Btch100 Rqt1 Afdc213.txt
104 Btch101 Rqt2 Abc213.txt
105 Btch101 Rqt2 Bbc213.txt
106 Btch102 Rqt3 zbc213.txt
107 Btch102 Rqt3 z6gt213.txt
型
我尝试创建私有临时表,根据请求ID和批处理ID选择行,并尝试在保持while循环的同时更新。
CREATE PRIVATE TEMPORARY TABLE temptable AS
SELECT requestId,batchId FROM TableA WHERE requestid is not null group by requestId,batchId .
型
我在创建临时表和插入表数据时遇到问题
Error : Unknown objectType 'Private' key word used in Create,Drop,or Alter statement.
型
请建议是否有任何替代方法来更新表,而不使用temptable
3条答案
按热度按时间x6492ojm1#
提示:使用SQL使人们容易回答,例如
字符串
现在,我们可以使用LAG将数据级联
型
然后把结果合并回去
型
rjzwgtxy2#
您正在查找
MAX
或MIN
。('Rqt1',null,null,null的最大值或最小值为'Rqt1'。)如果你想更新表中的行,那么只需要使用一个简单的
UPDATE
:字符串
如果只想选择数据,请使用
MAX OVER
:型
ltskdhd13#
其中一个选项是使用MODEL clause:
字符串
.这里是代码
型
... ...这是什么?
型
上面的代码可以合并来进行更新:
型