SELECT CASE -- Ensure there are at least two semicolons WHEN LEN(@string) - LEN(REPLACE(@string, ';', '')) >= 2 THEN -- Extract the part between the second-last and last semicolon SUBSTRING( @string, LEN(@string) - CHARINDEX(';', REVERSE(@string), CHARINDEX(';', REVERSE(@string)) + 1) + 2, CHARINDEX(';', REVERSE(@string), CHARINDEX(';', REVERSE(@string)) + 1) - CHARINDEX(';', REVERSE(@string)) - 1 ) ELSE NULL END AS SecondGroupFromRight