2012-01-27 6 views
3

OracleでSQLコマンドを作成して、 "LOADDATE"の値をテーブルの "UPDATEDATE"の値に更新します。私がここに持っていることは動作します:Oracleの同じ行の値を使用して列を更新してください

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; 

私はオラクルに関する確かなことは知っている一つのことは私は知りませんがたくさんあるということです。私が慣れていないOracleの機能を使用してこれを行うより良い方法はありますか?おそらくサブクエリを使用する必要はありませんか?それとも、これは道のりですか?

ありがとうございます!

答えて

9

外側に副選択のための必要はありませんどこサブクエリの句は同じですので、ちょうど

UPDATE LOAD_SETTINGS 
SET 
    LOADDATE = UPDATEDATE 

WHERE 
    MODEL = 'A001' 
    AND OBJECT = 'A'; 
+0

ワウ。私はその1つを考えすぎていました。明らかに、私は休憩を取るべき時です。ありがとう! – Paul

0
UPDATE LOAD_SETTINGS 
SET LOADDATE = UPDATEDATE 
WHERE MODEL LIKE 'A001' 
AND OBJECT LIKE 'A'; 
Model以来

Object直接列を参照することが使用するのは良いですVARCHARです=の代わりにLIKE

関連する問題