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

0

FUNCTIONを使用SUBSTRING()してこれを一度試すことができますCHARINDEX()

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()andCHARINDEX()関数を使用したもの。

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 に答える