0

次のように、サンプルデータを含むテーブルに列があります。

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 が主キー列ではないため、機能しませんでした。誰でもこれを手伝うことができますか?

4

1 に答える 1

0

引数の位置を変更するだけです。CHARINDEXつまり、最初の','+@ServiceTypes+','引数として配置し、その他を2番目の引数として配置します

于 2012-07-30T05:29:45.220 に答える