SQL如何提取字符串的中间部分

use*_*432 6 sql sql-server sql-server-2005

我想只从这个字符串中获取单元号:

'<p>The status for the Unit # 3546 has changed from % to OUTTOVENDOR</p>'
Run Code Online (Sandbox Code Playgroud)

注释始终完全相同,但单位编号会更改.如何仅提取单元号?

谢谢!

Joe*_*lli 6

declare @String varchar(500)

set @String = '<p>The status for the Unit # 3546 has changed from % to OUTTOVENDOR</p>'

select SUBSTRING(@String, charindex('# ', @String) + 2, charindex('has changed', @String) - charindex('# ', @String) - 2)
Run Code Online (Sandbox Code Playgroud)