我的表中有值,如下所示。此列名称是





ro


N3195(T132 / RL / TB / tgh 44,373 - 1,994)
 N13(T13 / RL / TB / tgh 0 - 12,586)
 N9(T129 / L / V / tgh 10,89 - 21,96)
 31(T129 / RL / WV / tgh 10,89 - 21,796) 



 在select语句之后我只想在'tgh'之后和字符' - '之前保留数字。最终结果必须没有空格。所以从上面的代码:


我尝试使用charindex和substring and right然后离开但我没有得到正确的结果。
感谢您的帮助!

答案 0 :(得分:0)
SQL Server
对于这种类型的搜索没有太多控制权。这是一个如何解决此问题的示例。这是一个固定的解决方案,对于某些与您提供的字符串不同的字符串可能会失败:
DECLARE @t TABLE ( ro NVARCHAR(MAX) )
INSERT INTO @t
VALUES ( 'N3195 (T132 / RL / TB / tgh 44,373 - 1,994)' ),
( 'N13 (T13 / RL / TB / tgh 0 - 12,586)' ),
( 'N9 (T129 / L / V / tgh 10,89 - 21,96)' ),
( '31 (T129 / RL / WV / tgh 10,89 - 21,796)' )
SELECT *, REPLACE(SUBSTRING(ro,
CHARINDEX('tgh', ro) + 3,
CHARINDEX('-', ro) - CHARINDEX('tgh', ro) - 3), ' ', '')
FROM @t