使用Oracle中同一行的值更新列

Pau*_*aul 5 sql oracle

我在Oracle中创建一个SQL命令,将"LOADDATE"的值更新为等于我表上"UPDATEDATE"的值.我在这里工作:

BEGIN
  UPDATE LOAD_SETTINGS 
    SET 
      LOADDATE = (
        SELECT UPDATEDATE 
        FROM LOAD_SETTINGS
        WHERE
          MODEL = 'A001'
          AND OBJECT = 'A'
      )
    WHERE
      MODEL = 'A001'
      AND OBJECT = 'A';
  COMMIT;
END;
Run Code Online (Sandbox Code Playgroud)

我确信甲骨文的一件事是有很多我不知道的东西.有没有更好的方法来使用我可能不熟悉的Oracle的任何功能?也许不必使用子查询?或者这是要走的路?

谢谢!

Con*_*rix 12

由于子查询上的where子句与外部的where子句相同,因此不需要subselect直接引用该列

UPDATE LOAD_SETTINGS 
SET 
  LOADDATE = UPDATEDATE 

WHERE
  MODEL = 'A001'
  AND OBJECT = 'A';
Run Code Online (Sandbox Code Playgroud)