2017-10-12 86 views
1

我有一個存儲過程,我想傳遞一個字符串參數,其中包含表示需要執行的步驟的數字。SQL Server:檢查字符串是否包含數字(單個或兩位數)

例如:

dc.SProcCP("1,2,14,24") //steps 1, 2, 14 and 24 need to be executed 

在我的存儲過程,我有一組if秒。每個人都檢查輸入參數是否包含一個步驟。就像在第一if

if (CHARINDEX("1",@inputsteps)>0 .... 

但是,這將是真實的,如果步驟包含「1」,或者如果步驟包含「14」。

我該如何解決這個問題?

+1

分割你的字符串轉換成VARCHAR零件和投每一個部分整數 – sepupic

+0

@sepupic可以編寫的代碼? – aggicd

+0

只需在互聯網上搜索SplitStr功能 – sepupic

回答

1

你可以簡單地檢查像下面

if (CHARINDEX('1,',CONCAT(@inputsteps,','))>0 .... 
+0

這很聰明!謝謝! – aggicd

+0

@aggicd我建議proc中的第一行應該是'SET @ inputsteps = CONCAT(@inputsteps +',')';沒有意義做同樣的操作,再次,增加SQL處理 – DhruvJoshi

+0

試試這個@inputsteps varchar(100)= '11,24' – sepupic

相關問題