Вы можете использовать условное выражение в order by
. Например:
order by switch(rank = "SO", 1, rank = "ASO", 2, rank = "O", 3, 1=1, 4)
Или используя вложенный iif()
:
order by iif(rank = "SO", 1
iif(rank = "ASO", 2,
iif(rank = "O", 3, 4)
)
)
Или создайте справочную таблицу со значениями порядка и присоедините к ней:
select t.*
from t inner join
ranks as r
on r.rank = t.rank
order by r.ord;