top of page
linear-illustration-slide-presentation-l
building-a-performing-machine-learning-m
623379_orig
Foto do escritorDiogo Vidal

Right Outer Join – Source Qualifier – User Defined Join – PowerCenter

Atualizado: 29 de ago. de 2023

Como unir duas tabelas – Source Qualifier – User Defined Join – Right Outer

** A transformação Source Qualifier é a maneira mais eficiente de unir duas tabelas no mesmo Banco de Dados ** Há duas opções disponíveis no SQ para múltiplas tabelas, uma usando a propriedade "User Defined Join" e a outra usando "SQL Query". Podemos criar um join override para fazer uma associação Normal join, Left join e Outer join usingUser Defined join’ , mas obteremos um erro de banco de dados se você tentar fazer 'Full outer join'. O serviço de integração não suporta Full outer join. Para isso, podemos usar SQL override e concluí-la.

User-Defined Join

Crie um join override. O Serviço de Integração anexa o join override à cláusula WHERE ou FROM da query padrão.

SQL Query

Substitua a query padrão por Join SQL query

Right Outer Join

O Serviço de Integração retorna todas as linhas da tabela à direita da sintaxe de associação e as linhas de ambas as tabelas que atendem à condição do join. Em outras palavras, ele retorna todas as linhas da tabela da direita (FUNCI_MIN), com as linhas correspondentes na tabela da esquerda (FUNCI_MAX). O resultado é NULL no lado esquerdo quando não há semelhança.

FUNCI_MAX - Esta é a segunda tabela (direita). Vamos unir essas duas tabelas e carregar para o target usando o SQ.

Criei um mapa com Transformação Source Qualifier. Precisamos de apenas 1 instância de SQ aqui com as portas de ambas as tabelas, pois estamos gravando uma única query para ler a partir da source.

Edite a propriedade SQ e entre com a expressão SQL no editor "User Defined Join". Apenas observe a sintaxe do join, insira a instrução de join entre chaves ou então obterá um erro de banco de dados. Join Syntax {FUNCI_MAX RIGHT OUTER join FUNCI_MIN on FUNCI_MAX.ID=FUNCI_MIN.ID}

Criei um Workflow e uma session para o mapa e executaremos o job. Vamos analisar o log da sessão. Apenas 6 linhas foram lidas do source e carregadas no target, Todas as linhas da tabela Direita, com as linhas correspondentes na tabela à esquerda.

Veja o Source Qualifier usado no mapa, usamos a propriedade "User Defined Join", o Serviço de Integração substitui a SQL Query padrão e foi alterado para uma Join Query.

Target output - Todos os registros da tabela Right (4 Matched + 2 Unmatched) foram carregados no target. Como não há correspondência, 5 e 6 mostrando como NULL.

Right Outer Join Query

SELECT FUNCI_MAX.ID, FUNCI_MAX.CARGO, FUNCI_MAX.BONUS_MAXIMO, FUNCI_MIN.BONUS_MINIMO FROM FUNCI_MAX RIGHT OUTER JOIN FUNCI_MINON FUNCI_MAX.ID=FUNCI_MIN.ID

Nós terminamos com o Right Outer Join - Vamos ver Full Outer Join na próxima sessão.



 

Se você gostou, inscreva se, mande sua opinião!

Meu e-mail: diogo.vidal@outlook.com | Diogo Vidal

33 visualizações0 comentário

Posts recentes

Ver tudo

Comments


bottom of page