Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 执行一个“命令”;“工会”;在两个表格中使用;加入;操作人员_Sql_Join_Union - Fatal编程技术网

Sql 执行一个“命令”;“工会”;在两个表格中使用;加入;操作人员

Sql 执行一个“命令”;“工会”;在两个表格中使用;加入;操作人员,sql,join,union,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 结果如下(不考虑排序): 问题:如何仅使用联接运算符而不使用UNION来获得相同的结果(组合所有a_名称和B_名称的单个列)?您可以使用完全外部联接来获得结果 select coalesce(A.A_Name, B.B_Nam

所提出的问题不是一个实际问题,而是一个合乎逻辑的问题

我们建议使用表A(ID_A,A_Name)和表B(ID_B,B_Name,ID_A)

如果我像这样跑

 select A_Name from A
        union
 select B_Name from B
结果如下(不考虑排序):


问题:如何仅使用联接运算符而不使用UNION来获得相同的结果(组合所有a_名称和B_名称的单个列)?

您可以使用完全外部联接来获得结果

select coalesce(A.A_Name, B.B_Name)
from A full join B on 1=0;
select case when nameA is null then  nameB else nameA end as UNIONNAME 
from 
tableA
full outer join 
tableB
on nameA=nameB

:您可以使用完全外部联接来获得结果

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

:您可以使用此选项:

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
选择大小写,当值为null时(A_Name,)”,然后选择A_Name,否则B_Name以Name结尾
从A_Name=B_Name上的完全外部联接B

您可以使用此选项:

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
选择大小写,当值为null时(A_Name,)”,然后选择A_Name,否则B_Name以Name结尾
从A_Name=B_Name上的完全外部联接B

正如我所解释的,这只是一个逻辑问题,没有实际价值。我知道有一种方法可以做到这一点,所以我试图找到一个解决方案。正如我所解释的,这只是一个逻辑问题,没有实际价值。我知道有一种方法可以做到这一点,因此我正试图找到一个解决办法。