- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLの2つのファイルを入れ子で読むには?)
SQLファイルの入れ子読みと文字列削除の処理方法
このQ&Aのポイント
- SQLで2つのファイルを入れ子で読む方法と、文字列の削除方法についてご教授願います。
- ファイルAには会社名が含まれており、項目名はA_Zです。ファイルBには取り除きたい文字列が含まれており、項目名はB_Zです。処理の概要として、まずファイルAを読み、次にファイルBを読みます。その後、ファイルAの項目 A_Z から B_Z の文字を削除します。この処理を繰り返します。
- MySQLとSQL Serverでの書き方を教えていただければと思います。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ファイルAとファイルBと呼ばれているのはテーブルでしょうか。 ストアドプロシージャではないのですが、されたい結果は以下のようなNEW_A_Zの感じでしょうか。 あっていればこれでUPDATEするように工夫すれば、ストアドプロシージャでなくてもいいような気がします。 そのままストアドプロシージャに書いてしまってもいいのかな。 SQLひとつになれば繰り返しが不要になると思います。 このSQLはMySQLでもSQL Serverでも実行できると思います。 ただ、B_Zの文字列が2つ以上含まれる場合があるとうまくいきません。 ---- SELECT A_Z, B_Z, CASE WHEN B_Z IS NULL THEN A_Z ELSE REPLACE (A_Z, B_Z, '') END AS NEW_A_Z FROM filea LEFT JOIN fileb ON A_Z LIKE CONCAT('%', B_Z, '%') ; ---- 結果 A_Z B_Z NEW_A_Z (株)あああ (株) あああ いいい(有) (有) いいい う(学)うう « NULL » う(学)うう
お礼
ご回答いただきありがとうございます。 仰られている通り、ファイルA及びファイルBはテーブルの事です。ストアドプロシージャにこだわっているわけではありませんので、むしろ頂きました回答のほうがいいです。 自分でも試してみましたが、想定通りの結果が得られました。重ねてお礼申し上げます。