
functionを作成しています。
AAA BBB BBB
==== ==== → ====
001 100 200
001 101 200
002 102 201
003 103 202
update TABLE_NAME set BBB = function (BBB);
のように呼び出されています。
現在はfunctionで連番がふられているため、BBBのカラムは
全て違う値に更新されてしまうのですが、
AAAで同じ値のものには同じ値を返しBBBのカラムを更新したいのですが
どのように作成したらいいのか教えてください。お願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
UPDATE一文で、一括更新する場合、更新する順番はオラクルが決めます。
また、更新の途上で、先に更新したレコードの内容は確認できません。
例えば、仮にオラクルが上から更新したとしたら、001-100で更新した値は
001-101の更新の際に、参照できません。
採番する(Function)側で、001-100に何を採番したか把握した上で、
001-101に対しても、同じ値を返す工夫が必要になります。
現在のFunctionの中身が判らないので、UPDATE一文で同様のことを
実現するとしたら、こんな感じで書けるはずです。
update TABLE_NAME Z
set
BBB
=
(
select R
from
(select AAA,rownum R from (select distinct AAA from TABLE_NAME)) X,
(select AAA,BBB from TABLE_NAME) Y
where X.AAA=Y.AAA and Y.BBB=Z.BBB
)
;
サブクエリの部分は、更新レコードのBBB項目しか参照していません。
このサブクエリの部分をFUNCTION側に移植して、採番の起点(200?)を
考慮する仕組みにすればよろしいのではないかと思います。
ちなみに、FUNCTIONのパラメータを見直せるのであれば、BBBだけでなく
AAA,BBBとする方が、FUNCTION側の負担は少ないと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- JavaScript jsonテキストデータの並び替えができるサービスを教えてください 2 2022/08/05 20:16
- JavaScript JavaScript|特定URLだった時、特定の要素を変更するコードの書き方を教えてほしいです 2 2023/08/25 21:43
- JavaScript 指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードを教えてください 2 2023/04/27 17:58
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
同行内の最大値
-
SQL文で教えてください
-
【マクロ】列を折りたたみ非表...
-
Access 製品情報を他のテーブ...
-
AND検索
-
EXCELで積上げ縦棒グラフと折れ...
-
クロス集計クエリについて
-
アクセスで複数のテーブルを結...
-
ACCESSのフォームについて
-
インターネットエクスプローラ...
-
ACCESS2002で作る水商売用顧客...
-
Acceseで集計
-
アクセスの空欄のテーブルについて
-
Accessにてデータの更新
-
2ちゃんねるのリンクが開かない
-
JConnectorがうまくつないでく...
-
Excel 2019 のピボットテーブル...
-
「直需」の意味を教えてください
-
Msgboxにテーブルのレコードを...
-
アクセスのデーターベースの共有
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Oracleのビュー作成時に「指定...
-
DB2でREPLACEによる文字列の置換
-
Oracle SQLにて固定長でデータ...
-
抽出結果を1件ずつ次の抽出条件...
-
ROWNUMについて
-
ある値以上の空き番の最小値を...
-
sqlplusで日本語入力
-
WITH句で複数テーブルを定義す...
-
ORACLEで一番最初の結果だけを...
-
ACCESS クエリーから件数取得
-
結合について
-
時間の重複を加味した連続時間S...
-
重複
-
P/L SQLで値が更新されない。
-
ORACLEでの件数カウント方法
-
効率のいい集計SQL文
-
sqlの条件文に関して
-
SQL 計算
-
distinct で抽出したレコード件数
-
SQL2005 で 複数列でのユニー...
おすすめ情報