前提
SQLで以下の処理をしたいです(なおSQLクエリはbigquery上で動かしているのでbigqueryでワークするSQLが知りたい状況です)。
あるテーブルに、10万行ぐらいの、日本語文字列のデータ列があり(完全にランダムな日本語文が入っている)、その日本語文字列の中に、別のマスターデータテーブルにある文字列が含まれていたら、そのマスターデータの文字列を加えるにはどうすればよいでしょうか?
実現したいこと
具体的にサンプルで言うと、以下のようなnumberとqueryという列を持つテーブルがあったとして
| number | query |
|---|---|
| 2 | 長野 名物 |
| 4 | くだもの 千葉県 |
| 2 | キッチン |
| 19 | 食事 |
| 44 | スイーツ |
| 23 | 東京のレストラン |
| 2 | 尼崎のスイーツ |
| 4 | レストラン 吉田 |
| 9 | そば 長野屋 |
一方で、以下のようなprefというマスタテーブルがあり
| pref |
|---|
| 東京 |
| 神奈川 |
| 千葉 |
| 埼玉 |
| 長野 |
| 山梨 |
| 新潟 |
それをSQLの処理で、以下のように、queryの中にprefのいずれかの文字列が含まれていた場合に、該当するprefの文字列を抽出して表示することがしたいです。
| number | query | pref |
|---|---|---|
| 2 | 長野 名物 | 長野 |
| 4 | くだもの 千葉県 | 千葉 |
| 2 | キッチン | |
| 19 | 食事 | |
| 44 | スイーツ | |
| 23 | 東京のレストラン | 東京 |
| 2 | 尼崎のスイーツ | |
| 4 | レストラン 吉田 | |
| 9 | そば 長野屋 | 長野 |
SQLでこのような処理が可能なのかわからず、教えていただけましたら幸いです。
回答2件
あなたの回答
tips
プレビュー
2022/10/30 06:11
2022/10/31 06:32