How to sort values starting with a letter followed up by a number?
You need to parse the string to separate the alpha + numeric part.

Assuming that it is always alpha first follow by numeric and not the other way round

the 2 cross apply split the alpha and numeric part from the string

select  *
from    yourtable t
        cross apply
        (
            select  alpha   = LEFT(your_col, PATINDEX('%[^0-9]%', your_col))
        ) AS a
        cross apply
        (
            select  num = CONVERT(INT, REPLACE(your_col, alpha, ''))
        ) AS n 
order by case when alpha &lt;&gt; '' then 1 else 2 end, 
         alpha, 
         num