Q&A

回答の並べ替え:
投稿新規に質問を投稿する

SQLのIN句について

tito tito

2021-04-28 17:08

SQLのIN句の設定についての質問です。

以下の順序で処理を作成しているのですが、値を取得できませんでした。
・他の処理でカンマ区切りの文字列を作成しA1セルに格納
 (例:「'北海道','東京','大阪'」のような文字列)
・その後、SQLのIN句にパラメータとしてA1セルを指定

SQLは以下になっています。
SELECT * FROM ○○テーブル WHERE ID IN(%prefecture%)
パラメータ:prefecture = A1

[やってみたこと]
・SQLのIN句を直接値にしたら意図した結果を取得しました。
SELECT * FROM ○○テーブル WHERE ID IN('北海道','東京','大阪')

なぜIN句でカンマ区切りのパラメータを指定すると上手く取得できないのでしょうか。
ご教授くださると幸いです。

よろしくお願い致します。

tito tito
Yexiongmao 様

回答ありがとうございます。
IN句には文字列を結合したセルを指定できないんですね。

現在はご教授いただいたセルの範囲指定で代替してます。
ありがとうございました。
Yexiongmao Yexiongmao
メダルベストアンサー
こんにちは。

CELFではIN句のパラメーターはセル範囲を指定して、「IN句用パラメータ」にチェックを入れる方法しかないようです。
セル範囲はセルの値のリストとして展開されるので、SQLパラメータとして同様に変換できますが、恐らく文字列として渡したのではうまく変換できないのではと推測します。
セル範囲は大きめに設定して、パラメータが埋まらなくても、また間が空いてもうまく変換してくれるので、使い勝手は良いと思います。