
お世話になります。
テーブルがA,Bと2つあり、Aの内容をBの内容と一致するようにUPDateしたい。
各テーブルには各々下記のフィールドがあります。
テーブルA フィールド DK、 NUM
テーブルB フィールド DKA、 DKB
DK=DKAのときに
下記条件でデータセットしたいのですがUPDATE文がわかりませんご教授お願いします。
DKにDKBを
NUMは20ケタのSTRINGで
1から13桁目まで元のNUMの文字を
後ろ7桁にDKBと7桁に満たない場合は頭に0を付加した文字をセットしたい。
DK=DKB
NUM=concat(substr(NUM,1,13),lpad(to_char(DKB),7,'0')
以上 宜しくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんな書き方でもできた気がします。
この方法なら、同一条件クエリは2つで済みますね。
UPDATE A
SET (DK, NUM) = (SELECT DKB, SUBSTR(A.NUM, 1, 13) || (SELECT LPAD(TO_CHAR(B.DKB), 7, '0') FROM B WHERE A.DK = B.DKA)
WHERE EXISTS (
SELECT B.DKA
FROM B
WHERE A.DK = B.DKA
)
キーが同じレコードを対象に、更新する項目でも同じ条件で対象レコードを抽出して
更新するだけですよ。
No.1
- 回答日時:
UPDATE A
SET DK = (SELECT DKB FROM B WHERE A.DK = B.DKA),
NUM = SUBSTR(A.NUM, 1, 13) || (SELECT LPAD(TO_CHAR(B.DKB), 7, '0') FROM B WHERE A.DK = B.DKA)
WHERE EXISTS (
SELECT B.DKA
FROM B
WHERE A.DK = B.DKA
)
naktak 様
ありがとうございます。
一意違反等でうまくいかなかったのですが
ご教授頂いたSQLでうまく更新しました。
助かりました。
ご教授頂いたSQLをしっかり理解したいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
select句副問い合わせ 値の個...
-
外部結合とor条件混在の記述方法
-
SELECTの結果で同一行を複数回...
-
GROUP BYを行った後に結合した...
-
MERGE文を単体テーブルに対して...
-
同一テーブルの別レコードの内...
-
select insertで複数テーブルか...
-
unionでマージした副問合せを結合
-
AccessからOracleへの外部結合
-
何にかが違うから エラーなんで...
-
Accessで別テーブルの値をフォ...
-
JSPのNULLレコード表示について...
-
実績累計の求め方と意味を教え...
-
OracleのSQL*PLUSで、デー...
-
決定性有限オートマトン
-
Oracleでの文字列連結サイズの上限
-
沿線コード
-
サブレンジ分割されたNDB(富士...
-
DataGridViewの、選択されてい...
-
関係演算子が無効です。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select insertで複数テーブルか...
-
select句副問い合わせ 値の個...
-
SELECTの結果で同一行を複数回...
-
MERGE文を単体テーブルに対して...
-
SQL GROUPで件数の一番多いレコ...
-
unionでマージした副問合せを結合
-
外部結合とor条件混在の記述方法
-
複数テーブルのMAX値の行データ...
-
固定値を含む結合と複数テーブ...
-
結合と副問い合わせの違い
-
oracleの分割delete
-
他のテーブルを参照した値はupd...
-
SET句内で複数の条件を指定して...
-
SQLの書き方(チェックボックス)
-
集計後の数値が倍になる
-
unionの結果は集計はできないで...
-
COUNTの取得方法(?)について...
-
SQLでの絞り込み検索
-
最大値の取得
おすすめ情報