- - PR -
updateコマンドに関して
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2005-03-01 23:04
お世話になります。
sql*plusのupdateについて教えて頂きたいのですが、 乙テーブル a b c -- -- -- 甲テーブル A B C -- -- -- このようなテーブルがありまして、 a=A and b=BならcをCに変更したいのです。 update 乙 set c = こう.C where a = (select こう.A from 甲.こう,甲.コウ where ‥) and b = (select こう.B from 甲.こう,甲.コウ where ‥); 甲は、同テーブル同士を比較して、その結果のA・B列を乙のa・bと比較することになっています。(selectは複数の結果を返してきます) そこで、set以下で「c = こう.C」とやったら、そんなテーブルはありませんとエラーがでました。 上手くcをCに変更できないでしょうか? どうぞよろしくお願いいたします。 [ メッセージ編集済み 編集者: オニア 編集日時 2005-03-01 23:06 ] [ メッセージ編集済み 編集者: オニア 編集日時 2005-03-02 01:25 ] | ||||
|
投稿日時: 2005-03-02 01:23
こんばんは。
ものわかりが悪いので、申し訳ないのですが... 甲テーブル A B C --------- 1 2 3 4 5 6 7 8 9 0 1 2 --------- 乙テーブル a b c --------- 1 2 3 4 5 0 7 8 0 9 0 1 --------- ↓こういう結果を望んでいますか? 乙テーブル a b c --------- 1 2 3 4 5 6 ← Cを6に更新 7 8 9 ← Cを9に更新 9 0 1 --------- [ メッセージ編集済み 編集者: ピゴナダ 編集日時 2005-03-02 01:38 ] | ||||
|
投稿日時: 2005-03-02 01:35
説明がわかりにくくて申し訳ありませんでした。
ピゴナダさんの書いた通りです。 ですが、やっかいなことに、 甲テーブル a b c --------- 1 2 3 4 5 6 7 8 9 0 1 2 --------- 乙テーブル A B C --------- 1 2 3 4 5 0 7 8 0 7 8 1 --------- 乙テーブル A B C --------- 1 2 3 4 5 6 ← Cを6に更新 7 8 9 ← Cを9に更新 7 8 9 ← Cを9に更新 --------- こうなります。 ユニークな組み合わせではなく、複数存在しています。 どうやったらいいのか、困り果ててます。 よろしくお願いいたします。 | ||||
|
投稿日時: 2005-03-02 01:43
もう寝る寸前なのと、自宅にSQLを確認できる環境がないので、
まるっきり自信がありませんが、こんなのではダメでしょうか? update 乙 set c = 甲.C where 甲.A || ',' || 甲.B = 乙.a || ',' || 乙.b; さきほどの私の投稿では、カラム名の大文字/小文字を間違えていたので 修正しておきました。 補足:A,Bのカラムに「,」があると、話はややこしくなります。 本当にもう寝ます。今夜の私からの返信できません。ご検討をお祈りいたします。 (役に立たなくてすいませんでした。) [ メッセージ編集済み 編集者: ピゴナダ 編集日時 2005-03-02 01:48 ] [ メッセージ編集済み 編集者: ピゴナダ 編集日時 2005-03-02 01:56 ] [ メッセージ編集済み 編集者: ピゴナダ 編集日時 2005-03-02 02:25 ] [ メッセージ編集済み 編集者: ピゴナダ 編集日時 2005-03-02 02:27 ] | ||||
|
投稿日時: 2005-03-02 02:37
>そこで、set以下で「c = こう.C」とやったら、そんなテーブルはありませんとエラーがでました。
このエラーさえ解決すればよいのでしたら、こんなんじゃだめでしょうか? (実行してませんが。。。) update 乙 set c = (select 甲.C from 乙,甲 where 甲.A = 乙.a and 甲.B = 乙.b ) where a = (select こう.A from 甲.こう,甲.コウ where ‥) and b = (select こう.B from 甲.こう,甲.コウ where ‥); | ||||
|
投稿日時: 2005-03-02 04:42
失礼、勘違いしました・・・。[ メッセージ編集済み 編集者: すー 編集日時 2005-03-02 05:24 ] | ||||
|
投稿日時: 2005-03-02 09:43
SQL*Plusについて何か分らないので大外ししているかもしれませんが、ちょっと気になった事だけ。
RDBで、ROW(行)を認識出来ない(全く内容が同じ)レコードって存在できるのでしたっけ? 出来たとしても、何か問題が起こるような気が・・・ | ||||
|
投稿日時: 2005-03-02 13:04
記憶が定かで無いけど、確か...というレベルで
_________________ 人生変わっちゃうかもよ?OFF会参加者募集中今考えるな、参加してから考えろ。 | ||||
