sql >> データベース >  >> RDS >> Oracle

2 つの order by クエリの和集合で order by を維持する

    とても簡単です:UNION ALL を使用します 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 はコード化された順序を保持します。

    UNION は重複を削除し、順序を保証しません。ほとんどのデータベースは実際に出力をソートします (重複検出を容易にするため)。



    1. mysql2つの列を使用していない場合

    2. C#のTry/Catchは例外をキャッチしません

    3. 現実世界の問題を解決するための単純なSQLServer関数

    4. MariaDBの日時値から秒を引く