With a lot of difficulty, if that's what you are storing.
String sorting is character based, and the whole comparison depends on the first different character - so the sort order will not be numeric:
1
10
11
12
...
2
20
21
In your case it's even worse, because the "TH", "ST", "ND" suffixes are counted in the comparison as well.
What I would do is set up a separate table
Grade Description
(int) (NVARCHAR(20))
1 1ST Grade
2 2ND Grade
3 3RD Grade
4 4TH Grade
5 5TH Grade
6 6TH Grade
7 7TH Grade
8 8TH Grade
9 9TH Grade
10 10TH Grade
11 11TH Grade
12 12TH Grade
99 Advanced
199 Mains
And store the Grade value with your other data, sort by that, and use a JOIN to retrieve the Description.
Any other method is going to be clumsy and error prone.