被问到的问题不是实际问题,而是合乎逻辑的问题。
让我们建议我们必须有表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?
答案 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
答案 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