Bạn có thể thực hiện việc này bằng cách thêm một cột giả có tên xếp hạng vào mỗi lựa chọn, mà bạn có thể sắp xếp theo thứ tự đầu tiên, trước khi sắp xếp theo các tiêu chí khác của bạn, ví dụ:
select *
from (
select 1 as Rank, id, add_date from Table
union all
select 2 as Rank, id, add_date from Table where distance < 5
union all
select 3 as Rank, id, add_date from Table where distance between 5 and 15
) a
order by rank, id, add_date desc