【SQL】【Oracle】 UPDATE…SELECT…で、複数カラムを更新
複数テーブルで結合・取得した副問合せ結果を、1テーブルの複数カラムへ更新する OracleでのSQL文サンプルです。
<<実行環境>> Oracle 12.1.0.2.0
UPDATE [TABLE①] A
SET (COLUMN①, COLUMN②) = (
SELECT B.COLUMN, C.COLUMN
FROM [TABLE②] B, [TABLE③] C
WHERE B.COLUMN = C.COLUMN
AND B.COLUMN = A.COLUMN
)
WHERE EXISTS (SELECT 1 FROM [TABLE②] B2 WHERE B2.COLUMN = A.COLUMN)
TABLE②とTABLE③で取得した結果を、TABLE①に上書きしたかったのです。
EXISTS回りの書き方をいつも忘れてしまう為、メモします。
ヴァックスラボではSE・プログラマを募集中です
私たちと一緒に価値を提供していく新しい仲間を募集します。
[spheader position="center"]
[/spheader]