Вы можете использовать case..when
выражение с функцией substr()
:
order by case when substring(str,1,3) = 'GXX' then 1 else 0 end, str
, это помещает значения, начинающиеся с GXX
внизу, но если вы точно упорядочиваете согласноваш желаемый результат, предпочтительнее использовать это, скорее:
order by case when substring(str,1,3) = 'GXX' then 1 else 0 end,
case when substring(str,5,1) = 'u' then str else 'z' end desc
Демо