あなたは値が正確に2つのアンダースコアが含まれますことを保証することができる場合:
DECLARE @ThirdPartyRef VARCHAR(50)
SET @ThirdPartyRef = '2500_NEW_001'
SELECT @ThirdPartyRef AS Value,
CHARINDEX('_',@ThirdPartyRef) AS FirstUnderscore,
CHARINDEX('_',@ThirdPartyRef,CHARINDEX('_',@ThirdPartyRef)+1) AS SecondUnderscore,
SUBSTRING(@ThirdPartyRef, CHARINDEX('_',@ThirdPartyRef) + 1, CHARINDEX('_',@ThirdPartyRef,CHARINDEX('_',@ThirdPartyRef)+1) - CHARINDEX('_',@ThirdPartyRef) - 1) AS Result
結果:
/------------------------------------------------------------\
| Value | FirstUnderscore | SecondUnderscore | Result |
|--------------+-----------------+------------------+--------|
| 2500_NEW_001 | 5 | 9 | NEW |
\------------------------------------------------------------/
FirstUnderscore
とSecondUnderscore
列は、ただそこにありますソリューションの仕組みを示しています。
あなたが本当に何のデータベースを使用していますか?あなたの質問はMySQLにタグ付けされていますが、コードはSQL Serverのようです。コードが動作するという考えに基づいて、タグをsql-serverに変更しました。 –
こんにちは、それは正しいです、そのSQLサーバー、変化のために歓声。 –
2500_NEW_001からのあなたの予想どおりの結果?? –