(select * from query1 EXCEPT select * from query2)
UNION ALL
(select * from query2 EXCEPT select * from query1)
問題を解決するために上記のクエリに出くわしました。私は postgres 9.4 でいくつかの試行を行いました。これが私の結果です。
1マイナスはサポートされていないため、EXCEPT を使用する必要があります
[2] EXCEPT のみを使用すると重複が考慮されないため、EXCEPT ALL を使用する必要がありました
[3] EXCEPT ALL では、結果の列の順序が同じである必要があるため、上記のクエリQUERY1
でQUERY2
同じ列の順序を返すか、クエリをラップして列の順序が同じであることを確認する必要があります (アプリケーションで発生する可能性があります)。論理)
したがって、上記の 3 点を念頭に置いておけば、結果について 100% 確信が持てますよね?
注: 上記の 3 点については、質問への回答でも言及しました。こちらで確認したので質問させていただきました