C'est très simple :utilisez UNION ALL
au lieu de 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 conserve la commande telle qu'elle est codée.
UNION supprime les doublons et ne garantit pas la commande. La plupart des bases de données trient en fait la sortie (pour faciliter la détection des doublons).