ホームページ  >  記事  >  データベース  >  SQL Union の使用法は何ですか?

SQL Union の使用法は何ですか?

coldplay.xixi
coldplay.xixiオリジナル
2020-06-09 16:21:319817ブラウズ

SQL Union の使用法は何ですか?

#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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。