Antes de mais nada, é importante deixar claro uma coisa: não existe o jeito certo de se implementar uma transformação. Se funciona, está certo. O que existe, entretanto, são maneiras mais adequadas, eficientes e que tornam a manutenção mais fácil. Em outras palavras, existem as melhores práticas.
Dito isto, vamos apresentar as duas ferramentas e exemplificar seu uso utilizando duas bases de dados: Estados e Regiões, como mostrado na figura abaixo:
O que as ferramentas fazem ?
A ferramenta Find Replace (Encontrar e Substituir) tem como objetivo localizar informações em uma outra fonte de dados e enriquecer a saída com campos desta fonte, seja substituindo o valor original ou acrescentando novas informações. Para isso ela usa um campo em comum presente nas duas entradas.
A ferramenta Join (Junção) relaciona as informações de duas entradas a partir de campos em comum entre elas e gera uma saída que pode ter dados de ambas as origens.
Pelas descrições apresentadas, percebe-se que recuperar uma descrição a partir de um campo chave é uma tarefa que pode ser realizada por ambas as ferramentas.
Agora, vamos listar as principais diferenças entre elas:
Diferença 1: Chave de Relacionamento
A ferramenta Find Replace está restrita ao uso de campos alfanuméricos. Caso o seu código seja um inteiro, por exemplo, o uso deste não estará disponível.
Note que o campo CodRegião, chave entre as duas tabelas, não aparece na lista de campos possíveis, pois não é do tipo String. Para usar a ferramenta é necessário alterar o campo nas duas entradas para este formato.
Já a ferramenta Join permite a operação, desde que ambos os campos possuam o mesmo formato.
Diferença 2: Quando não encontra o registro procurado
A ferramenta Find Replace, quando não encontra um registro correspondente na pesquisa, mantém o registro e deixa os campos com nulo.
A ferramenta Join, ao não encontrar o registro correspondente, descarta o mesmo em sua saída principal, Join (J). O registro descartado ainda poderá ser encontrado nas saídas Left (L) e Right (R). Caso você não queira perder esta informação, será necessário utilizar a ferramenta Union para retornar com a linha excluída.
Diferença 3: Quando a pesquisa retorna mais de um registro
De forma análoga à diferença anterior, a ferramenta Find Replace, quando encontra mais de uma ocorrência para a chave, retorna o último registro localizado.
Embora num primeiro momento isso possa parecer estranho, podemos usar este comportamento a nosso favor. Exemplo: Se você estiver lendo uma tabela de histórico de pedidos, o registro retornado será sempre o do status mais recente, e você pode aproveitar para recuperar a data deste status.
Já com o Join, a ferramenta aumentará a quantidade de linhas na mesma proporção da quantidade de registros encontrados. No nosso exemplo, como existem 3 ocorrências para o código 4, a saída do Join vai gerar 3 linhas para cada registro da região na entrada.
Outros detalhes que fazem diferença
Por último, alguns detalhes que podem pesar na escolha da ferramenta mais adequada. Vamos listar alguns na tabela abaixo.
Característica |
Find Replace |
Join |
Número de chaves |
Apenas 1 |
1 ou mais |
Substituição de valor procurado |
Nativo |
Possível |
Ignorar maiúsculo/minúsculo |
SIM |
NÃO |
Busca por parte do campo |
SIM |
NÃO |
Pronto, agora você já sabe as principais diferenças entre as ferramentas Find Replace e Join, e pode escolher a mais adequada às suas necessidades.
Você deve ser um usuário registrado para adicionar um comentário aqui. Se você já estiver registrado, faça logon. Se você ainda não estiver registrado, registre-se e faça logon.