sql >> データベース >  >> RDS >> Oracle

MERGEステートメントORACLEの複数の列を更新します

    ループは必要ないと思います。 IDが主キーであり、例でクランクを数回繰り返すつもりはなかったと思います。

    このようなものは機能しますか?

    RajAのコメントに従って編集します。これにより、他のフィールドの1つが変更された行のみが更新されます。これは、一方がNULLで、もう一方がNULLではない行を更新しないことに注意してください。

    MERGE INTO final T 
    USING ( SELECT id, score, crank, urank FROM test ) S
       ON ( S.vid = T.id AND 
            ( S.crank != T.crank OR S.score != T.score OR S.urank != T.urank ))
     WHEN MATCHED SET crank = S.crank, score = S.score, 
          crank = S.crank, urank = S.urank 
     WHEN NOT MATCHED THEN INSERT
          [... not sure what you want to do in this case ...]
    



    1. PostgreSQLデータベースを使用してWebアプリで完全なオフライン機能を使用するにはどうすればよいですか?

    2. SQLServerでSELECTから更新する方法

    3. テーブル式の基礎、パート12 –インラインテーブル値関数

    4. MySQLは、あるデータベースから別のデータベースに挿入します