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ランキング
-
ORACLEで一番最初の結果だけを...
-
Oracleのビュー作成時に「指定...
-
Oracle SQLにて固定長でデータ...
-
抽出結果を1件ずつ次の抽出条件...
-
DB2でREPLACEによる文字列の置換
-
Excel 2019 のピボットテーブル...
-
Accessでテーブル名やクエリ名...
-
APN設定について教えていただけ...
-
「直需」の意味を教えてください
-
エクセルVBAで5行目からオート...
-
作番ってどういう意味でしょうか?
-
Access テキスト型に対する指定...
-
FROM の中で CASE を使えるでし...
-
ExcelのデータをコピーでACCESS...
-
Accessファイルを作成者以外は...
-
複数のレコードを1つのレコード...
-
Accessのリンクテーブルのパス...
-
ACCESSでの改行コード
-
異なるサーバのDBデータ同士を...
-
SUBSTRING 関数に渡した長さの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Oracleのビュー作成時に「指定...
-
ROWNUMについて
-
ORACLEで一番最初の結果だけを...
-
Oracle SQLにて固定長でデータ...
-
抽出結果を1件ずつ次の抽出条件...
-
ある値以上の空き番の最小値を...
-
DB2でREPLACEによる文字列の置換
-
distinct で抽出したレコード件数
-
WITH句で複数テーブルを定義す...
-
P/L SQLで値が更新されない。
-
sqlplusで日本語入力
-
時間の重複を加味した連続時間S...
-
動的SQLでのDECODE
-
PL/SQL 複数件同じ値で更新す...
-
group by でselect
-
SQL文についての質問
-
ACCESS クエリーから件数取得
-
エクセルVBAで5行目からオート...
-
「直需」の意味を教えてください
-
Accessでテーブル名やクエリ名...
おすすめ情報