sql >> Base de Datos >  >> RDS >> Oracle

Mantener el orden por en unión de dos consultas ordenadas por

Es realmente simple:usa UNION ALL en lugar 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 conserva el orden codificado.

UNION elimina los duplicados y no garantiza el pedido. La mayoría de las bases de datos ordenan la salida (para facilitar la detección de duplicados).