【问题标题】:SQL Server: check if string contains numbers (single or double digits)SQL Server:检查字符串是否包含数字(单数或双数)
【发布时间】:2017-10-12 08:27:44
【问题描述】:

我有一个存储过程,我想传递一个字符串参数,其中包含代表需要执行的步骤的数字。

例如:

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

在我的存储过程中,我有一组 ifs 。每个都检查输入参数是否包含一个步骤。就像在第一个 if 中一样:

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

但如果步骤包含“1”或步骤包含“14”,这将是正确的。

我该如何解决这个问题?

【问题讨论】:

标签: sql sql-server tsql stored-procedures sql-server-2012


【解决方案1】:

你可以像下面这样简单地检查

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

【讨论】:

  • @aggicd 我建议proc中的第一行应该是SET @inputsteps= CONCAT(@inputsteps+',');一次又一次地做同样的操作是没有意义的,增加了 SQL 处理
  • 用@inputsteps varchar(100) ='11,24'试试这个
猜你喜欢
  • 2016-05-06
  • 2013-11-20
  • 1970-01-01
  • 2022-06-30
  • 2020-06-27
  • 2015-02-07
  • 2010-12-19
相关资源
最近更新 更多