ソートせずにUNIONを実行するにはどうすればいいですか? (SQL) 質問する

ソートせずにUNIONを実行するにはどうすればいいですか? (SQL) 質問する

UNION2 つの結果を結合して重複を削除しますが、UNION ALL重複は削除しません。
UNIONまた、最終出力をソートします。

UNION ALL重複がなく、並べ替えもされていないものが欲しいのですが、それは可能ですか?

その理由は、最初のクエリの結果を最終結果の上に表示し、2 番目のクエリの結果を一番下に表示したいからです (それぞれが個別に実行されたかのように並べ替えられます)。

ベストアンサー1

この質問は多くの閲覧数を獲得していることに気づいたので、まずはあなたが抱いている疑問に答えたいと思います。しなかった聞く!

タイトルについて。「Sql Union All」を実現するには「distinct」の場合は、単にUNION ALLに置き換えますUNION。これにより重複が削除されます。

あなたの特定の質問については、「最初のクエリには「優先度」が必要なので、重複は下から削除する必要があります」という説明があれば、

SELECT col1,
       col2,
       MIN(grp) AS source_group
FROM   (SELECT 1 AS grp,
               col1,
               col2
        FROM   t1
        UNION ALL
        SELECT 2 AS grp,
               col1,
               col2
        FROM   t2) AS t
GROUP  BY col1,
          col2
ORDER  BY MIN(grp),
          col1  

おすすめ記事