0
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  
4

2 回答 2

1

SUBSTRING结合使用CHARINDEX

SELECT SUBSTRING(@A,CHARINDEX('sus_',@A,0)+4,CHARINDEX('_R5',@A,0)-5)
于 2014-06-12T17:40:59.990 回答
0

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

阅读有关字符串函数的更多信息

于 2014-06-12T17:46:41.767 回答