#SQL Union の使用法は何ですか?
SQL Union の使用法の概要:
UNION 演算子は、複数の SELECT ステートメントの結果を結果セットに結合します。
(1) UNION を使用する場合は、次の条件を満たす必要があります。
A: すべてのクエリは同じ構造でなければなりません (つまり、クエリ内の列の数と順序が同じである必要があります)。
B: 対応する列のデータ型は異なっていてもかまいませんが、互換性がある必要があります (いわゆる互換性とは、2 つの型間で暗黙的な変換を実行できることを意味し、暗黙的な変換ができない場合はエラーが報告されます)実行されます)。同じデータ型への明示的な変換を使用することもできます。
(データ型が異なる場合、結果のデータ型はデータ型の優先規則に従って決定されます。型は同じでも、精度、位取り、または長さが異なる場合、結果のデータ型は次のようになります。 (結果を決定するための同じルールに従って決定されます) (MSDN: データ型の優先順位を参照)
C: XML データ型の場合、列は同等でなければなりません (すべての列は XML スキーマとして型指定される必要があります) 、または型なし)。型付きの場合、列は同じ XML スキーマ コレクションに型指定されている必要があります。
(2) UNION 結果セット
A: UNION 以降の結果セットの列名は、最初の SELECT 文の結果セットの列名と同じです。別の SELECT ステートメントからの結果セットの列名は無視されます。
B: UNION はデフォルトで結果セット内の重複レコードを削除します。ALL キーワードを使用すると、すべてのレコードが結果セットに保持されます (重複レコードは保持されます)
(3)注
A : Transact-SQL ステートメントでは複数の UNION 演算子を使用できます。
B: UNION 演算子を使用する各 SELECT ステートメントには、独自の ORDER BY 句または COMPUTE 句を含めることはできません。代わりに、ORDER BY 句または COMPUTE 句は、最終的に結合された結果セット内 (つまり、最後の SELECT ステートメントの後) でのみ使用できます。
CC: GROUP BY 句と HAVING 句は、UNION 演算子を使用して各 SELECT ステートメントで使用できます。
D: デフォルトでは、SQL Server 2005 は UNION 演算子を含むステートメントを左から右に評価します。括弧を使用して評価の順序を指定できます。
MSDN 例は次のとおりです。
たとえば、次のステートメントは同等ではありません:
/* First statement. */ SELECT * FROM TableA UNION ALL ( SELECT * FROM TableB UNION SELECT * FROM TableC ) GO /* Second statement. */ (SELECT * FROM TableA UNION ALL SELECT * FROM TableB ) UNION SELECT * FROM TableC) GO
推奨チュートリアル: "SQL ビデオ チュートリアル "
以上がSQL Union の使用法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。