0

整数の 2 つの列 A と B があるとします。ここで、これらとは異なる値が必要です。つまり、A と B の両方に 1 がある場合、1 は 1 回だけ必要です。

注:個別の行を取得することに興味はありません。このテーブルから、A または B にある一意の整数値を取得したいだけです

A と B の値を一時テーブルの 1 つの列に挿入し、その列に対して個別の選択を行うことができます。

より洗練されたものはありますか (パフォーマンス面で)?

4

1 に答える 1

7

そのようなものはうまくいくはずです、私は思います:

すべての個別の 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 句を付ける必要さえありません。非常に独創的です。ありがとう、ルカーシュ!

マルク

于 2009-10-10T07:37:04.063 に答える