Det är väldigt enkelt:Använd UNION ALL
istället för 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 bevarar ordningen som kodad.
UNION tar bort dubbletter och garanterar inte ordning. De flesta databaser sorterar faktiskt utdata (för att göra dubbelupptäckt lättare).