SQL - Как сделать левое соединение с условием? - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть две таблицы: rais.rais_vinculo и code.division

В rais_vinculo У меня есть поле " CODE " со значениями от 1000 до 99999.

В деление У меня есть поле " код " со значениями от 1 до 99 и поле "описание".

Я хочу сделать left join() поставить поле "описание" с "КОДОМ", сопоставив первые цифры. Пример: если «9000» или «9999» совпадают с «9» и «99999» или «99211» совпадают с «99»

Что у меня есть:

код | описание

1 | Агро

... | ...

99 | Другие

И

КОД

1000

....

99999

Что я хочу:

CODE | description_code

1000 | Агро

... | ...

9000 | Промышленность

9999 | Промышленность

... | ...

10000 | Коммерция

... | ...

999999 | Другие

Что у меня уже есть:

UPDATE rais.rais_vinculo
SET description_code = division.description
FROM code.division WHERE CODE = code 

1 Ответ

5 голосов
/ 11 февраля 2020

Зачем вам нужна 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; 
...