あなたはこれを試すことができます。
DECLARE @string nvarchar(max) = '32-HC-100-10001-G03P2-N-1-1001'
SELECT REVERSE(STUFF(SUBSTRING(REVERSE(@string),CHARINDEX('-',REVERSE(@string))+1,LEN(@string)),1,CHARINDEX('-',SUBSTRING(REVERSE(@string),CHARINDEX('-',REVERSE(@string))+1,LEN(@string))),'')),
REVERSE(LEFT(SUBSTRING(REVERSE(@string),CHARINDEX('-',REVERSE(@string))+1,LEN(@string)),CHARINDEX('-',SUBSTRING(REVERSE(@string),CHARINDEX('-',REVERSE(@string)),LEN(@string)))))
出力:
32-HC-100-10001-G03P2-N 1
それは常にあなたがXMLを使用することができます第七一環として来ている場合:
DECLARE @string nvarchar(max) = '32-HC-100-10001-G03P2-N-1-1001',
@xml xml
SELECT @xml = CAST('<d>'+REPLACE(@string,'-','</d><d>') +'</d>' as xml)
SELECT t.v.value('/d[1]','nvarchar(10)') + '-' +
t.v.value('/d[2]','nvarchar(10)') + '-' +
t.v.value('/d[3]','nvarchar(10)') + '-' +
t.v.value('/d[4]','nvarchar(10)') + '-' +
t.v.value('/d[5]','nvarchar(10)') + '-' +
t.v.value('/d[6]','nvarchar(10)'),
t.v.value('/d[7]','nvarchar(10)')
FROM @xml.nodes('/') as t(v)
出力:
32-HC-100-10001-G03P2-N 1
最後の 'Charindex'関数の2番目のパラメータが** missing ** –
@Prdpありがとう、それを修正しました! – gofr1