表值函数

时间:2012-07-30 04:01:15

标签: sql-server-2008

我在表格中有一个列,其中的示例数据如下:

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不是主键列,因此它不起作用。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

只需更改CHARINDEX的参数位置,即将','+@ServiceTypes+','作为第一个参数,将其他作为第二个参数