0

問われている質問は実際的なものではなく、むしろ論理的なものです。

テーブル A (ID_A, A_Name) と B (ID_B, B_Name, ID_A) が必要だとしましょう。

次のようなものを実行すると

 select A_Name from A
        union
 select B_Name from B

結果は次のようになります (ソートは考慮されません)。

  A_Name1
  A_Name2
  A_Name3
  B_Name1
  B_Name2
  B_Name3

質問: UNION を使用せずに、JOIN 演算子のみを使用して SAME 結果 (すべての A_Names と B_Names を組み合わせた単一の列) を取得するにはどうすればよいですか?

4

3 に答える 3

1

FULL 外部結合を使用して結果を取得できます

select case when nameA is null then  nameB else nameA end as UNIONNAME 
from 
tableA
full outer join 
tableB
on nameA=nameB

SQLフィドル

于 2013-05-23T09:33:03.400 に答える
1
select coalesce(A.A_Name, B.B_Name)
from A full join B on 1=0;
于 2013-05-23T09:32:20.803 に答える
1

このSELECTを使用できます:

SELECT CASE WHEN ISNULL(A_Name, '') <> '' THEN A_Name ELSE B_Name END AS Name
FROM A FULL OUTER JOIN B ON A_Name = B_Name
于 2013-05-23T09:38:13.843 に答える