2012-07-30 43 views
0

我有一個表樣本數據的列如下:表值函數

ServiceTypeIds 
7,1 
1,9 
1 
9 
4 
7 
7 

在我的Where子句我使用以下方法來搜索就可以了:

WHERE(@ServiceTypes IS NULL OR CHARINDEX(','+CAST(SEP.ServiceTypeIDs as VARCHAR(255))+',', ','[email protected]+',') > 0))) 

如果我PARAM @ ServieTypes等於'1,9',那麼我會得到結果,但是當它的@ServiceTypes ='1'或'9'時,我不會收到任何迴應。表格設計很差,但我沒有足夠的時間來創建新表格並修改c#代碼。我試圖使用表值函數,但由於ServiceTypeIds不是主鍵列,它沒有工作。任何人都可以幫忙嗎?

+0

你可能有一些空間,請嘗試使用'LIKE' – bjan 2012-07-30 04:04:24

+0

檢索結果有列沒有空格,也沒有空格在參數中 – 2012-07-30 04:06:26

+0

更改CHARINDEX中參數的位置。 'CHARINDEX(','+ @ ServiceTypes +',',','+ CAST(SEP.ServiceTypeIDs as VARCHAR(255))+',')'[CHARINDEX](http://msdn.microsoft.com/zh-cn/ us/library/ms186323.aspx) – bjan 2012-07-30 04:22:18

回答

0

只要修改參數的位置爲CHARINDEX即把','[email protected]+','作爲第一個參數等作爲第二

+0

謝謝你的幫助, – 2012-07-30 05:40:17