表中的LEFT JOIN问题以获取期望输出

问题描述

表A

---------------------
ProjectID   Column1
---------------------
1           Test1
1           Test2
1           Test3
---------------------

表B

---------------------
ProjectID   Column1
---------------------
1           Test1
1           Test2

如果表B中的值可用,我想得到以下结果,然后返回“ Selected” ,否则-“ Unselected”

-----------------------
Column1     Output
-----------------------
Test1        Selected
Test2        Selected
Test3        Unselected 

我尝试了以下查询获取输出

Select A.Column1,CASE When A.Column1=B.Column1 Then 'Selected' ELSE 'Unselected' as Output 
       from Table A LEFT JOIN Table B on A.PrjectID=B.ProjectID 

解决方法

Select A.Column1,case when max(B.Column1) is null 
            then 'unselected' 
            else 'selected' 
       end as Output 
from Table A 
LEFT JOIN Table B on A.Column1 = B.Column1
group by A.Column1
,

嗨,我修改了您的代码,请尝试以下解决方案:

Select A.Column1,CASE When A.Column1=B.Column1 Then 'Selected' ELSE 'UnSelected' 
       END as Output_ 
from Table A 
LEFT JOIN Table B on A.PrjectID=B.ProjectID 
,

类似的事情会起作用(即使表A和B中的ProjectID超过1个)。

数据

drop table if exists #tTESTa;
go
select * INTO #tTESTa from (values 
(1,'test1'),(1,'test2'),'test3')) V(ProjectID,Column1);

drop table if exists #tTESTb;
go
select * INTO #tTESTb from (values 
(1,'test2')) V(ProjectID,Column1);

查询

select ta.Column1,case when tb.ProjectID is null then 'Unselected' else 'Selected' end OutPut
from #tTESTa ta
     left join #tTESTb tb on ta.ProjectID=tb.ProjectID
                             and ta.Column1=tb.Column1;

输出

Column1 OutPut
test1   Selected
test2   Selected
test3   Unselected

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...