【问题标题】:SQL Server 2008: Finding a value from a stringSQL Server 2008:从字符串中查找值
【发布时间】:2014-06-12 17:33:13
【问题描述】:
This might be a very simple select statement, here's my question.

I have a variable 
DECLARE @A varchar(128) --declaring variable
SET @A = 'sus_123456_R5_20140506'  --setting value

我想在 'sus_' 之后和 'R5' 之前找到值 此外,两者之间的值不是固定长度。所以函数必须是动态的。 但是它总是有 sus 和 _R5_date。这是恒定的。

SET @A = 'sus_129_R5_20150408

Thanks  

【问题讨论】:

    标签: sql-server select dynamic charindex


    【解决方案1】:

    SUBSTRINGCHARINDEX 结合使用:

    SELECT SUBSTRING(@A,CHARINDEX('sus_',@A,0)+4,CHARINDEX('_R5',@A,0)-5)
    

    【讨论】:

      【解决方案2】:

      您可以使用SUBSTRING()CHARINDEX() FUNCTION 尝试一次

      DECLARE @A varchar(128) --declaring variable
      SET @A = 'sus_123456_R5_20140506'
      
      select substring(@A,charindex('_',@A)+1,charindex('r5',@A)- (2+charindex('_',@A)))
      

      结果:123456

      (OR)这个使用LEFT(),RIGHT()CHARINDEX()函数。

      DECLARE @A varchar(128) 
      SET @A = 'sus_129_R5_20150408'
      select right(left(@A,charindex('R5',@A) - 2),charindex('_',@A) - 1)
      

      结果:129

      阅读更多关于String Function

      【讨论】:

        猜你喜欢
        • 2015-02-15
        • 1970-01-01
        • 1970-01-01
        • 2013-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多