Много е просто:Използвайте UNION ALL
вместо UNION
.
SELECT * FROM (
SELECT name,total,rate
FROM business b
WHERE rate > 100
ORDER BY total DESC) x
UNION ALL
SELECT * FROM (
SELECT name,total,rate
FROM business b
WHERE rate <= 100
ORDER BY rate ASC) y
UNION ALL запазва реда, както е кодиран.
UNION премахва дубликати и не гарантира ред. Повечето бази данни всъщност сортират изхода (за да улеснят откриването на дубликати).