sla*_*oah 3 sql sql-server excel vlookup data-comparison
我有两列数据需要相互比较 - 列A和列B.
A栏:
Steve
Jane
Mary
Peter
Ed
Scott
Ted
Run Code Online (Sandbox Code Playgroud)
B栏:
Peter
Scott
David
Nancy
Run Code Online (Sandbox Code Playgroud)
我需要找出B列中的哪些值也在A列中.
上述样本数据的预期输出:
Peter TRUE
Scott TRUE
David FALSE
Nancy FALSE
Run Code Online (Sandbox Code Playgroud)
感谢你的帮助!
Exa*_*Box 10
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
Run Code Online (Sandbox Code Playgroud)
左联接的问题是表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;
Run Code Online (Sandbox Code Playgroud)
表达这一点的另一种方法是使用相关子查询。这将所有逻辑放在select:
select b.col,
(case when exists (select 1 from a where a.val = b.col)
then 'TRUE'
else 'FALSE'
end)
from b
Run Code Online (Sandbox Code Playgroud)