Đối với dữ liệu cụ thể của bạn, bạn có thể làm:
order by (case when cat_type = 'free' then id*1.0
else 2*id - 7.5
end)
Điều này có vẻ rất bí ẩn. Nếu gặp vấn đề chung chung hơn, bạn nên hỏi một câu hỏi khác, mô tả rõ hơn về những gì bạn thực sự muốn đạt được.