sql >> Database teknologi >  >> RDS >> Oracle

Vedligeholdelse af rækkefølgen ved i forening af to sorteret efter forespørgsler

Det er virkelig enkelt:Brug UNION ALL i stedet for 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 bevarer orden som kodet.

UNION fjerner dubletter og garanterer ikke orden. De fleste databaser sorterer faktisk outputtet (for at gøre duplikatdetektion lettere).



  1. Sådan bruger du implementerer AES_DECRYPT() af MySQL af Python

  2. oracle-duplikerede rækker baseret på en enkelt kolonne

  3. PostgreSQL:hvordan man opdaterer rækker i CTE

  4. Identitetsfejl (ved databaseoprettelse) angivet nøgle var for lang