sql >> Databáze >  >> RDS >> Oracle

Udržování objednávky spojením dvou uspořádaných pomocí dotazů

Je to opravdu jednoduché:Použijte UNION ALL místo 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 zachovává pořadí tak, jak je zakódováno.

UNION odstraňuje duplikáty a nezaručuje pořádek. Většina databází ve skutečnosti třídí výstup (pro snazší detekci duplicit).



  1. Jak uložit datový rámec pandy s datovými objekty typu datetime.timedelta do postgresql d/b pomocí sqlalchemy?

  2. Negativní stav v Join

  3. SQL Server:seskupení po sobě

  4. Jak zkontroluji nastavení InnoDB?