Расширяя мой комментарий, "Title_1311b" добавляется значение 1311 к значению ASCII "b".
Declare @col varchar(15) = 'Title_1311b'
SELECT SUBSTRING(@col, PATINDEX('%[0-9]%', @col), PATINDEX('%[0-9][^0-9]%', @col) - PATINDEX('%[0-9]%', @col) + 1) + ascii(right(@col,1))+1
Можете ли вы добавить это в свой SQL-запрос и посмотреть, что происходит?
ORDER BY SUBSTRING(@col, PATINDEX('%[0-9]%', @col), PATINDEX('%[0-9][^0-9]%', @col) - PATINDEX('%[0-9]%', @col) + 1) + ascii(right(@col,1))+1