我在表格中有一个列,其中的示例数据如下:
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不是主键列,因此它不起作用。有人可以帮忙吗?
答案 0 :(得分:0)
只需更改CHARINDEX
的参数位置,即将','+@ServiceTypes+','
作为第一个参数,将其他作为第二个参数