如果你能保证值将仅包含两个下划线:
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? –