使用“join”运算符执行两个表的“联合”

时间:2013-05-23 09:10:57

标签: sql join union

被问到的问题不是实际问题,而是合乎逻辑的问题。

让我们建议我们必须有表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

Qustion:如何仅使用JOIN运算符获取SAME结果(组合所有A_Names和B_Names的单个列),不使用UNION?

3 个答案:

答案 0 :(得分:1)

select coalesce(A.A_Name, B.B_Name)
from A full join B on 1=0;

答案 1 :(得分: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 FIDDLE

答案 2 :(得分: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