我有结构表的主表:
T1
ID Name
1 Cricket
2 Football
3 Golf
T2
ID T1-ID SomeNumber
1 1 180
2 2 180
3 1 195
4 3 195
列T1-ID
是外来的,表格为T1,ID列。我希望得到'180'
的Somenumber值的结果集,如
输出:
ID Name ComputedColumn
1 Cricket True
2 Football True
3 Golf False
我尝试过使用Left-Joins,Case Statements但没有得到预期的结果。
答案 0 :(得分:2)
您可以使用left join
:
select t1.*,
(case when t2.id is null then 'False' else 'True' end) as ComputedColumn
from t1 left join
t2
on t1.id = t2.t1_id and t2.somenumber = 180;
实际上,假设每个id最多出现180
行一次(如示例数据中所示)。如果此类行可能多次出现,请使用case
:
select t1.*,
(case when exists (select 1 from t2 where t1.id = t2.t1_id and t2.somenumber = 180)
then 'True' else 'False'
end) as ComputedColumn
from t1;