あなたがこれを達成することができますnumbersテーブルを使用して、あなたがしなければならないすべては、数値テーブルを作成することです..あなたはまた、以下のような任意の場所で値を選択するために、ROWNUMBERを使用することができます
declare @string varchar(max)
set @string='_'+'XYZ_3244H_V65_C005_Z1234567455_P_F_20160127_0137.txt'+'_'
select
substring (@string,n+1,charindex('_',@string,n+1)-n-1)
from numbers
where
substring(@string,n,1)='_'
and n<len(@string)
..
select
substring (@string,n+1,charindex('_',@string,n+1)-n-1),row_number() over (order by charindex('_',@string,n+1)) as rn
from numbers
where
substring(@string,n,1)='_'
and n<len(@string)
その後
;with cte
as
(
select
substring (@string,n+1,charindex('_',@string,n+1)-n-1) as splitstrig,row_number() over (order by charindex('_',@string,n+1)) as rn
from numbers
where
substring(@string,n,1)='_'
and n<len(@string)
)
select * from cte where rn=5
のような任意の場所で番号を取得するために、CTEを使用
http://stackoverflow.com/questions/2647/how-do-i-split-a-stringの可能重複-so-i-can-access-item-x –
それで、答えのどれがあなたを助けましたか? – gofr1