, CHARINDEX/SUBSTRING, .
:
select *
from (
select 'Q' x
union
select 'Num 10'
union
select 'Num 1'
union
select 'A'
union
select 'Num 9'
union
select 'Num 2'
union
select 'F'
) a
order by
case
when CHARINDEX(' ', x) <> 0 then LEFT(x, CHARINDEX(' ', x) - 1)
else x
end,
cast(case
when CHARINDEX(' ', x) <> 0 then substring(x, CHARINDEX(' ', x) + 1, LEN(x) - CHARINDEX(' ', x) )
else ''
end as int)
:
A
F
Num 1
Num 2
Num 9
Num 10
Q
Edit:
, . T-SQL, , , , . CLR, . , . .