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即 Put','+@ServiceTypes+','作为第一个参数,其他作为第二个参数

于 2012-07-30T05:29:45.220 回答