方法: 1. Union を使用してクエリをマージし、マージされた結果セットから重複行を削除します。2. "union all" を使用して、結果セットから重複行を削除せずにクエリをマージします。3. intersect を使用してマージします。クエリを実行し、クエリを取得します。 結果の交差部分。 4. マイナスを使用してクエリをマージし、クエリ結果の差分セットを取得します。
このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。
実際のアプリケーションでは、複数の選択ステートメントの結果をマージするために、集合演算記号 Union、Union all、intersect、minus を使用できることがあります。 。
比較的大量のデータを扱うデータ ビューロで主に使用され、高速に実行されます。
1). Union
この演算子は、2 つの結果セットの和集合を取得するために使用されます。この演算子を使用すると、結果セット内の重複行が自動的に削除されます。
例は次のとおりです:
SELECT ename, sal, job FROM emp WHERE sal >2500 UNION SELECT ename, sal, job FROM emp WHERE job = 'MANAGER';
2).union all
この演算子は Union に似ていますが、重複行はキャンセルされません。ソートされません。
例は次のとおりです。
SELECT ename, sal, job FROM emp WHERE sal >2500 UNION ALL SELECT ename, sal, job FROM emp WHERE job = 'MANAGER';
この演算子は、2 つの結果セットの和集合を取得するために使用されます。この演算子を使用すると、結果セット内の重複行は自動的に削除されません。
3).intersect
この演算子を使用して、2 つの結果セットの共通部分を取得します。
例は次のとおりです:
SELECT ename, sal, job FROM emp WHERE sal >2500 INTERSECT SELECT ename, sal, job FROM emp WHERE job = 'MANAGER';
4).minus
この演算子を使用して、2 つの結果セットの差分セットを取得します。最初のコレクションには存在するが、2 番目のコレクションには存在しないデータを表示します。
例は次のとおりです:
SELECT ename, sal, job FROM emp WHERE sal >2500 MINUS SELECT ename, sal, job FROM emp WHERE job = 'MANAGER';
(MINUS は減算を意味します)
推奨チュートリアル: 「Oracle Video Tutorial」
以上がOracle でクエリとマージを行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。