概要:このチュートリアルでは、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 JOIN
UNION
は二つのテーブルの列を結合し、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
を使用して、複数のクエリの行を単一の結果セットに結合する方法を学びました。