要件
- べた書きのSQLしか作れません
- ORマッパーは利用できません
- プログラムで動的に条件句を編集することもできません
- 文字列をカンマ区切りで繋げることくらいは可能
という絶望的な制約の中でIN句を動的に設定する必要が出てきました。
なお当方にストアドプロシージャの知識はありません。
解決策
SQLServerならSTRING_SPLIT
に文字列と区切り文字を渡せばサブクエリとしてIN句の条件に使えます。(参考)
サンプル
select
id,
name
from
employee
where
id in (
select
value
from
STRING_SPLIT('001,002,003', ',')
)
おわりに
ORマッパー使えないのはキツいけど製品の制約なのでどうしようもないのですが、この場合は正直言って素直にストアドプロシージャ使った方が良いような気がします。