2017-10-12 51 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

相关问题