是否有模仿nvl()的Python fn或我可以使用SQL来做到这一点?

时间:2019-06-11 20:48:31

标签: sql python-3.x

我需要在nvl类型fn上使用python连接两个表,因为我们有一个表,根据零件类型,我们只输入前7个字符。

到目前为止,我还没有找到在python中执行此操作的简单方法。
有功能可以做到这一点,还是实现它的另一种简便方法?

提前谢谢

我加入了part_number,删除了其他表的字段为NaN的位置,然后作为新表加入子字符串,然后将这些表附加在一起。并以错误的行数结束。

left join on nvl(nvl(thistable.part_number, substr(thistable.part_number, 1, 7)),'not in defn table') = part_number.othertable

输出可能是这样的:

thistable.part_number    othertable.description
abc123                   real part
def456                   another real part
1234567-02               part stored as 1234567 in othertable
koue49c                  not in defn table

1 个答案:

答案 0 :(得分:1)

我认为您想要coalesce()

on coalesce(thistable.part_number, substr(thistable.part_number, 1, 7), 'not in defn table') = part_number.othertable

coalesce()具有多个参数,因此您无需嵌套函数调用。