一、
order by    ( case
when    regexp_like( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1) , '^[+-]?\d+(\.\d)?\d*$') --正则表达式判断数字
then    LPAD( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1),8) --作填充
else
RPAD( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1),8) --右填充
end
)

二、
order by    ( case
when     upper( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1)) = lower(SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1)) --大小写一样表示数字
then    LPAD( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1),8)
else
RPAD( SUBSTR(t.ids, INSTR(t.ids, '-',1, 2)+1, INSTR(t.ids, '-',1, 3)-INSTR(t.ids, '-',1, 2)-1),8)
end
)