概要:このチュートリアルでは、SQL ServerUNIONを使用して、複数のクエリの結果を単一の結果セットに結合する方法
SQL Server UNIONの概要
SQL ServerUNIONは、ユニオン内のSELECTステートメントの結果を、SELECTステートメントに属するすべての行を含む単一の結果セットに結合できるセット操作の一つです。,
SQL Serverの構文を次に示します。UNION:
Code language: SQL (Structured Query Language) (sql)
上記の構文のクエリの要件は次のとおりです。
- 列の数と順序は両方のクエリで同じでなければなりません。
- 対応する列のデータ型は、同じまたは互換性がある必要があります。
次のベン図は、T1テーブルの結果セットがT2テーブルの結果セットとどのように結合するかを示しています。
ユニオン対, UNION ALL
デフォルトでは、UNION演算子は、結果セットからすべての重複行を削除します。 ただし、重複行を保持する場合は、次のようにALLキーワードを明示的に指定する必要があります。
Code language: SQL (Structured Query Language) (sql)
つまり、UNION演算子は重複行を削除し、UNION ALL演算子は重複行を最終結果セットに含めます。
ユニオン対, JOIN
INNER JOINまたはLEFT JOINUNIONは二つのテーブルの列を結合し、UNIONは二つのクエリの行を結合します。
つまり、joinは結果セットを水平方向に追加し、unionは結果セットを垂直方向に追加します。,div id=”7f8c7e0c1a”>
SQL Server UNION examples
See the following staffs and customers tables from the sample database:
UNION and UNION ALL examples
The following example combines names of staffs and customers into a single list:
It returns 1,454 rows.,
staffsテーブルには10行、customersテーブルには1,445行があります。
unionの結果セットは1,454行しか返さないため、重複した行が削除されたことを意味します。
重複する行を含めるには、次のクエリに示すようにUNION ALLを使用します。
クエリは期待どおりに1,455行を返します。,
UNION and ORDER BY example
UNION演算子によって返される結果セットをソートするには、ORDER BY句を最後のクエリに次のように配置します。
Code language: SQL (Structured Query Language) (sql)
たとえば、顧客およびスタッフの姓および姓をソートするには、次のクエリを使用します:
このチュートリアルでは、sql serverUNIONを使用して、複数のクエリの行を単一の結果セットに結合する方法を学びました。