前提・実現したいこと
あるカラムのデータをある条件を基に、
同一テーブルからSELECTしてきたレコード値によって書き換えたい。
データの修正のためにUPDATE分を使って値を書き換えたいのですが、どうやって書き換えればいいのかわからず。
発生している問題・エラーメッセージ
例:
テーブルが一つあります。
USERS
その中の特定のカラム(例えばXXX)をUSERSの中にある他のレコードの値を参照して、書き換えたいです。
(書き換えるための値を保持しているはXXXで同一です)
テーブル作成
sql
1CREATE TABLE USERS 2 ( 3 id VARCHAR2(10) NOT NULL, 4 xxx VARCHAR2(50), 5 yyy VARCHAR2(50) 6 );
レコード追加
sql
1INSERT INTO USERS VALUES ('USER01','USE01の名称','USER01の備考'); 2INSERT INTO USERS VALUES ('USER02','USE02の名称','USER02の備考'); 3INSERT INTO USERS VALUES ('USER03','USE03の名称','USER03の備考');
この時にUSER02のレコードのxxxの値を抽出して、
レコードUSER01のレコードのxxxの値を抽出された値で更新したい。
ためしたこと
XXXカラムのUPDATEは以下のように試しました。
SQL
1UPDATE 2 USER1 3 inner join target on USER1.id = target.id 4FROM 5 USER USER1, 6 (select * 7 from 8 USER USER2, USER USER3 9 where 10 USER2.yyy = USER3.yyy ) as target 11SET 12 USER1.xxx = USER2.xxx 13where 14 USER1.id= USER2.id
補足情報(FW/ツールのバージョンなど)
Oracle DBです
SETキーワードがないと言われてしまします(以下)。
SQLエラー: ORA-00971: SETキーワードがありません。
00971. 00000 - "missing SET keyword"
回答1件
あなたの回答
tips
プレビュー