• If you have to keep the data this way, maybe can parse the hourse_no, then order by different parts.

    SELECT

    CAST(SUBSTRING(hourse_no,1,CHARINDEX('-',hourse_no)-1) AS INT),

    CAST(SUBSTRING(hourse_no,CHARINDEX('-',hourse_no)+1,2) AS INT),

    ...

    FROM #temp

    ORDER BY

    CAST(SUBSTRING(hourse_no,1,CHARINDEX('-',hourse_no)-1) AS INT),

    CAST(SUBSTRING(hourse_no,CHARINDEX('-',hourse_no)+1,2) AS INT),

    ...