首页 > 解决方案 > SQL 查询根据子记录中是否存在值生成具有派生列的单行

问题描述

我有这样的场景:

表 A

COL1(PRIMARY) 
REC1
REC2

表 B

COL1(PRIMARY) COL2(foreign key to col1 in table A) COL3
B_REC1         REC1                                VAL1
B_REC2         REC1                                VAL2
B_REC3         REC1                                VAL2
B_REC4         REC2                                VAL1

我想要一个将产生结果的查询

REC1 true
REC2 false

查询中的第二列不是实际列,但它的值源自表 B 的 COL3 中是否存在 VAL2

标签: sql

解决方案


这可以产生预期的结果

Select distinct
  a.COL1, 
  case when b.COL1 is null then false else true end as Flag
from TableA a 
left join TableB b on a.COL1 = b.COL2 and b.COL3 = 'VAL2'

谢谢穿刺器 :-)


推荐阅读