Je to opravdu jednoduché:Použijte UNION ALL
místo 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 zachovává pořadí tak, jak je zakódováno.
UNION odstraňuje duplikáty a nezaručuje pořádek. Většina databází ve skutečnosti třídí výstup (pro snazší detekci duplicit).