Oracle使用另一个表中的条件更新查询

时间:2016-08-05 14:21:57

标签: sql oracle

我正在尝试根据以下select语句更新表中的列。 I列更新列不是连接条件,而是不同的值。

SELECT * 
FROM TRANS DT, RECOVER RT
WHERE DT.SERIAL_NUMBER =RT.SERIAL_NUMBER
AND DT.DATE >= TO_DATE('07/14/2016','mm/dd/yyyy')

我已尝试以下操作并收到错误消息。任何帮助将不胜感激。

UPDATE TRANS
SET CODE = SUCCESS
WHERE (SELECT * 
       FROM TRANS DT, RECOVER RT
       WHERE DT.SERIAL_NUMBER = RT.SERIAL_NUMBER
         AND DT.DATE >= TO_DATE('07/14/2016', 'mm/dd/yyyy')

1 个答案:

答案 0 :(得分:1)

由于SUCCESS是一个字符串,请尝试使用Exists:

UPDATE TRANS
SET CODE = 'SUCCESS'
WHERE exists (SELECT 1
                FROM  RECOVER RT
               WHERE TRANS.SERIAL_NUMBER = RT.SERIAL_NUMBER
                 AND TRANS.DATE >= TO_DATE('07/14/2016','mm/dd/yyyy');
相关问题