小编典典

在2个联合SQL Server表中获得不同的值

sql

我正在尝试使用联合在2个表中获取所有不同的值。

这个想法是要获得columnA列中所有唯一值的计数而无需重复,这样我就可以得到包含唯一的columnA的所有列的总和。

这是我尝试过的(SQL Server Express 2008)

select 
    count(Distinct ColumnA) 
from 
( 
    select Distinct ColumnA as ColumnA from tableX where x = y
    union
    select Distinct ColumnA as ColumnA from tableY where y=z
)

阅读 155

收藏
2021-04-22

共1个答案

小编典典

SELECT COUNT(distinct tmp.ColumnA) FROM ( (SELECT ColumnA FROM TableX WHERE x=y) 
UNION (SELECT ColumnA FROM TableY WHERE y=z) ) as tmp

TableX和TableY上不需要额外的区别;它们将在tmp.ColumnA子句中删除。声明临时表应消除可能导致查询无法执行的歧义。

2021-04-22