gpt4 book ai didi

sql - 如果存在则有条件加入

转载 作者:行者123 更新时间:2023-12-04 03:15:45 24 4
gpt4 key购买 nike

我需要根据三列键堆栈将两个表连接在一起。问题是有时其中一个键列在另一个表中的转换和映射不同。我将尝试使用代码举例说明我的问题:

select t1.TQ
from table1 t1
left join table2 t2 on t1.comp_cd = t2.comp_cd and t1.plcy_frm = t2.plcy_frm
and t1.val_cd = t2.val_cd

列“comp_cd”和“plcy_frm”没有问题,但问题出在 val_cd 上。有时 table2 中的 val_cd 没有正确映射到 table1,必须经过第三个表 table3。表3结构如下:

Val_Cd        Mapped_Val_Cd
A123 A564

所以 -> 我需要加入 Mapped_Val_Cd当它存在于 Table3 中时的值, 但加入 Val_Cd来自 Table2什么时候Val_CdTable3 中不存在.

我希望这是有道理的 - 我已经尝试过 Case when exists 语法但无法让它工作。

最佳答案

假设 table3 中没有重复项,您可以left join 它,然后在 on 子句中选择您想要的值:

select t1.TQ
from table1 t1 left join
table3 t3
on t1.val_cd = t3.val_cd
table2 t2
on t1.comp_cd = t2.comp_cd and
t1.plcy_frm = t2.plcy_frm and
t1.val_cd = coalesce(t3.Mapped_Val_Cd, t2.val_cd);

关于sql - 如果存在则有条件加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41168153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com