获取varchar的一部分的最后一个字(左/右)

Tim*_*ter 3 sql t-sql sql-server-2005

获取varchar的最后一个单词的正确方法是什么?

DECLARE @desc varchar(100)
SET @desc='EXCHANGEUNIT P1i / SILVERBLACK/ CYRILLIC'

SELECT RTRIM(LEFT(@desc, CHARINDEX('/', @desc) - 1))
Run Code Online (Sandbox Code Playgroud)

返回: EXCHANGEUNIT P1i

我只需要P1i查询.

提前致谢.

小智 12

使用REVERSE,LEFT和CHARINDEX的组合 - 如下所示:

DECLARE @desc varchar(100)
SET @desc='EXCHANGEUNIT P1i / SILVERBLACK/ CYRILLIC'
SET @subdesc=RTRIM(LEFT(@desc, CHARINDEX('/', @desc) - 1))


SELECT REVERSE( LEFT( REVERSE(@subdesc), CHARINDEX(' ', REVERSE(@subdesc))-1 ) )
Run Code Online (Sandbox Code Playgroud)