È davvero semplice:usa UNION ALL
invece di 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 conserva l'ordine come codificato.
UNION rimuove i duplicati e non garantisce l'ordine. La maggior parte dei database ordina effettivamente l'output (per facilitare il rilevamento dei duplicati).