我有两个表的数据类似于以下内容:
业务:
id company_name industry
1 test 123
industry_benchmark_ratio:
id code year value
1 00 2021 1.1
2 00 2020 1.2
3 111 2021 1.11
4 222 2021 1.12
5 222 2021 1.12
我想选择一家企业并加入行业代码上的比率表,但如果没有匹配的代码,我想加入默认的"00"+年份值,所以我正在寻找类似的东西:
SELECT *
FROM business b
JOIN industry_benchmark_ratio ibr ON (
(b.industry = ibr.industry and year = 2021) OR
(ibr.industry = 00 and year = 2021)
)
我想到了COALESCE,但我不太确定如何在这里应用它。
我同意你解决这个问题的方向。加入第二个表两次,合并得到您需要的:
SELECT b.*, COALESCE(ibr1.value, ibr2.value)
FROM business b
INNER JOIN industry_benchmark_ratio ibr1 ON
b.industry = ibr2.industry and ibr1.year = 2021
INNER JOIN industry_benchmark_ratio ibr2 ON
ibr2.industry = 00 and ibr2.year = 2021