Oracle テーブルの複数列をSELECTした結果でUPDATEするサンプル
環境
Oracle Database 11g Release 11.2.0.1.0 – 64bit Production
PL/SQL Release 11.2.0.1.0 – Production
構文
UPDATE テーブル1
SET (列1,列2) = (SELECT 列1,列2 FROM テーブル WHERE 条件1)
WHERE 条件2;
テーブルの複数列をSELECTした結果でUPDATEします。
操作例
1.user_tblテーブルの値
userno username postnum addr T123 東京太郎 123-4567 東京都品川区1-2-3
2.posttblテーブルの値
postnum addr 123-4567 東京都品川区1-2-3 123-4568 東京都品川区4-5-6
3.UPDATE SELECTので複数列をまとめて更新します
SQL構文
UPDATE USER_TBL SET (ADDR, POSTNUM) = ( SELECT ADDR , POSTNUM FROM POSTTBL WHERE POSTNUM = '123-4568' ) WHERE USERNO = 'T123';
説明
USER_TBLテーブルの2つの列「addr」、「postnum」を別テーブル「posttbl」テーブルの内容で更新します。