我有数据的2列,我需要相互比较 - 列A和B列
A栏:
Steve
Jane
Mary
Peter
Ed
Scott
Ted
B栏:
Peter
Scott
David
Nancy
- 塔A具有比B列数据量较大
- 但它可能没有B列中的所有值
我需要找出在B列中的值也都在列A
输出预期上述样品数据:
Peter TRUE
Scott TRUE
David FALSE
Nancy FALSE
- 需要使用SQL Server / T-SQL来获得此输出。
- 列A和列B都在2个单独的表中的字段
- 有2个表中没有其他列
感谢你的帮助!
select
b.columnb,
case when a.columna is null then 'FALSE' else 'TRUE' end
from
tableb b left outer join
tablea a on b.columnb = a.columna
与左连接的问题是,有可能是在表A重复
如果这是一个问题,你可以这样做:
select b.col, (case when a.val is NULL then 'FALSE' else 'TRUE' end)
from b left outer join
(select distinct a.val
from a
) a
on b.col = a.val;
表达本的另一种方法是使用一个相关子查询。 这使得在所有的逻辑select
:
select b.col,
(case when exists (select 1 from a where a.val = b.col)
then 'TRUE'
else 'FALSE'
end)
from b