次のように、サンプルデータを含むテーブルに列があります。
ServiceTypeIds
7,1
1,9
1
9
4
7
7
Where 句では、次を使用して検索します。
WHERE(@ServiceTypes IS NULL OR CHARINDEX(','+CAST(SEP.ServiceTypeIDs as VARCHAR(255))+',', ','+@ServiceTypes+',') > 0)))
パラメータ @ServieTypes が '1,9' の場合は結果が得られますが、@ServiceTypes = '1' または単に '9' の場合は何も返されません。テーブルのデザインはかなり貧弱ですが、新しいテーブルを作成して C# コードを変更するのに十分な時間がありません。テーブル値関数を使用しようとしましたが、ServiceTypeIds が主キー列ではないため、機能しませんでした。誰でもこれを手伝うことができますか?