質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

1回答

16289閲覧

同一テーブルの値を取得し、その値を利用して同一テーブルにある別レコードのカラムの値をUPDATEしたい

退会済みユーザー

退会済みユーザー

総合スコア0

Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2020/03/31 13:41

編集2020/03/31 13:56

前提・実現したいこと

あるカラムのデータをある条件を基に、
同一テーブルから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"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2020/03/31 13:46

質問にCREATE TABLEと数件で良いからデータをINSERTで追記してください。
Orlofsky

2020/03/31 13:47

エラーメッセージは要約しないで表示された内容をそのまま載せてください。
Orlofsky

2020/03/31 14:14 編集

ミスなので取り消し
guest

回答1

0

ベストアンサー

投稿2020/03/31 14:38

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問