I am working with a table that comes from an external source, and cannot be "cleaned". There is a column which an nvarchar(20) and contains an integer about 95% of the time, but occasionally contains an alpha. I want to use something like

```
select * from sch.tbl order by cast(shouldBeANumber as integer)

```

but this throws an error on the odd "3A" or "D" or "SUPERCEDED" value.

Is there a way to say "sort it like a number if you can, otherwise just sort by string"? I know there is some sloppiness in that statement, but that is basically what I want.

Lets say for example the values were 

```
7,1,5A,SUPERCEDED,2,5,SECTION

```

I would be happy if these were sorted in any of the following ways (because I really only need to work with the numeric ones)

```
1,2,5,7,5A,SECTION,SUPERCEDED
1,2,5,5A,7,SECTION,SUPERCEDED
SECTION,SUPERCEDED,1,2,5,5A,7
5A,SECTION,SUPERCEDED,1,2,5,7

```