At first glance:
Given a table like this:
SQL> select * from mhe_foo
2 order by thevalue ASC
3 /
THEVALUE
----------
FS
FT
SF
dm
hdus
hf
hr
hrecy
hrub
hsoft
hw
You can do this
SQL> SELECT thevalue
2 FROM (SELECT thevalue
3 , RANK () OVER (ORDER BY thevalue ASC) rn
4 FROM mhe_foo)
5 ORDER BY DECODE (GREATEST (thevalue, 'dm'), thevalue, rn, 'dm', rn * 100)
6 /
THEVALUE
----------
dm
hdus
hf
hr
hrecy
hrub
hsoft
hw
FS
FT
SF
11 rows selected.
The above example started off with 'dm' and worked around from there.
MHE