整数の 2 つの列 A と B があるとします。ここで、これらとは異なる値が必要です。つまり、A と B の両方に 1 がある場合、1 は 1 回だけ必要です。
注:個別の行を取得することに興味はありません。このテーブルから、A または B にある一意の整数値を取得したいだけです
A と B の値を一時テーブルの 1 つの列に挿入し、その列に対して個別の選択を行うことができます。
より洗練されたものはありますか (パフォーマンス面で)?
整数の 2 つの列 A と B があるとします。ここで、これらとは異なる値が必要です。つまり、A と B の両方に 1 がある場合、1 は 1 回だけ必要です。
注:個別の行を取得することに興味はありません。このテーブルから、A または B にある一意の整数値を取得したいだけです
A と B の値を一時テーブルの 1 つの列に挿入し、その列に対して個別の選択を行うことができます。
より洗練されたものはありますか (パフォーマンス面で)?
そのようなものはうまくいくはずです、私は思います:
すべての個別の A を選択し、次にすべての個別の B' を選択 UNION これら 2 つのセットすべて 統合された結果セットから DISTINCT を選択 SELECT DISTINCT * FROM ( SELECT DISTINCT A FROM YourTable UNION ALL SELECT DISTINCT B FROM YourTable )
Lukáš の助けを借りて、次のように簡単に書くことができます。
SELECT A FROM YourTable
UNION
SELECT B FROM YourTable
彼が正しく指摘しているように、通常の UNION は重複を返さないからです。個々の SELECT に DISTINCT 句を付ける必要さえありません。非常に独創的です。ありがとう、ルカーシュ!
マルク