我有两个系列的工会,我希望加入另一个工会。在第一个中,我有 3 个Selects
,在第二个中,我有 2 个不同的Selects
.
Select id, min(value)
from table1 t1
join (Select id, value
Union
Select id, value
Union
Select id, value) as foo
on foo.id=t1.id
Group by id
Select id, max(value)
from table1 t1
join (Select id, value
Union
Select id, value) as bar
on bar.id=t1.id
Group by id
我试图在这两者之间建立一个联合,但这使事情变得相当复杂。我最大的问题是我的别名。我的第二个案例是链接到我的值列的案例,我希望将其命名为值。
Select (alias).id,
Case
When foo.value= 0 or bar.value=1 THEN 1
Else 0
End as value
from table1 t1
Join (Select id, min(value)
from table1 t1
join (Select id, value
Union
Select id, value
Union
Select id, value) as foo
on foo.id=t1.id
Group by id
UNION
Select id, max(value)
from table1 t1
join (Select id, value
Union
Select id, value) as bar
on bar.id=t1.id
Group by id) as (alias)
on ??.id=??.id
我按照我认为应该写的方式写了我的案例,但是通常,当有多个具有相同名称的列时,SQL 将其声明为模棱两可。我仍然不确定是否应该使用UNION
or INTERSECT
,但我认为它们中的任何一个都会以相同的方式完成。我应该如何处理?