SQL - 如何使用条件进行左连接?

RxT*_*RxT 0 sql postgresql left-join conditional-statements

我有两个表: rais.rais_vinculo 和 code.division

rais_vinculo 中,我有字段“ CODE ”,其值从 1000 到 99999。

部门中,我有字段“代码”,值从 1 到 99,字段“描述”。

我想left join()通过匹配第一个数字来将字段“描述”与“代码”放在一起。示例:如果“9000”或“9999”与“9”匹配且“99999”或“99211”与“99”匹配

我拥有的:

代码 | 描述

1 | 农业

... | ...

99 | 其他

代码

1000

....

99999

我想要的是:

代码 | 描述代码

1000 | 农业

... | ...

9000 | 行业

9999 | 行业

... | ...

10000 | 商业

... | ...

999999 | 其他

我已经拥有的:

UPDATE rais.rais_vinculo
SET description_code = division.description
FROM code.division WHERE CODE = code 
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 5

你为什么想要一个left join?我认为这已经足够了:

update rais.rais_vinculo rv
    set descricao_cnae_divisao = d.descricao
    from cnae.divisao d
    where floor("CNAE.2.0.Classe" / 1000) = cnae; 
Run Code Online (Sandbox Code Playgroud)