通过oracle中的avlue frome select语句更新2表中的数据

时间:2017-10-23 19:05:43

标签: oracle

您好我想在table1中通过inter(一些已存在的值)将值更改为某个数字然后我想要使用相同的select语句中的out bout更新table2中的另一个值( 一些存在的价值)。我尝试这样的事情:

update  decrees set laststatusid = 4 
where decreeid = ALL (Num1,Num2,....Num100);

UPDATE REQUESTS SET LASTSTATUSID = 22
   WHERE REQUESTID = ALL ((
                SELECT REQUESTID 
                FROM DECREES
                WHERE DECREEID = ALL(Num1,Num2,....Num100)); 

它适用于一个数字但是当我插入多个数字时它没有用 您的快速回复将不胜感激 感谢。

1 个答案:

答案 0 :(得分:0)

我认为当您使用= ALL时,您的问题正在使用IN

除非我不理解您的问题,否则您尝试一次更新多行,但您的decreeID是值,它永远不会等于整套值,这是您尝试使用= ALL实现的。

另一方面,它解释了为什么它可以使用单个值。

示例:

UPDATE decrees
SET laststatusid = 4
WHERE decreeid IN(Num1, Num2, .... Num100);

UPDATE REQUESTS
SET LASTSTATUSID = 22
WHERE REQUESTID IN (SELECT REQUESTID
                    FROM DECREES
                    WHERE DECREEID IN(Num1, Num2, .... Num100));