Usuário com melhor resposta
PROBLEMA NA COMPARAÇÃO DE STRINGS !!!!

Pergunta
-
Estou tentando comparar strings via lookup, a base esta da seguinte forma:
Entrada 1 (LEFT)
Logradouro = RUA JACUI , Complemento = CASA 03, Num_Endereco = 579
Entrada 2
Logradouro = RUA JACUI , Complemento = CASA 03, Num_Endereco = 579, Sk_Endereco= 55555
O join é feito por todos os campos recuperando a SK.
No momento da recupação da Sk_Endereço os SSIS retorna NULL como valor.
Dei um UPPER nos campos e retirei os acentos e mesmo assim o problema continua.
Alguem sabe onde esta o problema ?quinta-feira, 20 de setembro de 2012 14:51
Respostas
-
Fazer comparações em strings deste tipo é complicado, por que qualquer espaço ja faz diferença, tente usar o ltrim(rtrim(campo)) nos campos que fazem o join, pode ser que tenha espaço no inicio ou no fim dos campos.
Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
- Marcado como Resposta Phillipe F. Santos quinta-feira, 20 de setembro de 2012 16:17
quinta-feira, 20 de setembro de 2012 14:53 -
o unico jeito que conheço seria o update manual ou usando o replace...
Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator sexta-feira, 21 de junho de 2019 13:59
quinta-feira, 20 de setembro de 2012 18:05
Todas as Respostas
-
Fazer comparações em strings deste tipo é complicado, por que qualquer espaço ja faz diferença, tente usar o ltrim(rtrim(campo)) nos campos que fazem o join, pode ser que tenha espaço no inicio ou no fim dos campos.
Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
- Marcado como Resposta Phillipe F. Santos quinta-feira, 20 de setembro de 2012 16:17
quinta-feira, 20 de setembro de 2012 14:53 -
Tentei fazer isso, não deu..
Estranho que agora testo o join em campos separados e da certo, mas qdo eu faço o join somente pelo num_endereco retorna null.
Não estou entendendo pq isso ta acontecendo....
quinta-feira, 20 de setembro de 2012 15:16 -
este campo esta como numerico ou string ? tente fazer o join utilizando o replace de espaço em branco por nada nos campos ao inves do ltrimrtirm para comparar sem os espaços entre palavras, replace(campo1,' ','') = replace(campo2,' ','')
Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
quinta-feira, 20 de setembro de 2012 16:05 -
Alexandre,
Eu dei um Rtrim e Ltrim e resolveu, porem para tirar os acentos eu no select collate sql_latin1_general_cp1251_ci_as
Porem apareceu um problema:
BECO JOANA D'ARC VIROU BECO JOANA D?ARC
Como faço para remover esses caracteres especiais ?
quinta-feira, 20 de setembro de 2012 16:17 -
Phillipe, primeiramente voce precisa identificar onde estão estes caracteres especiais, faça como no exemplo abaixo, criei uma tabela teste e inseri uma linha ok e 2 com caracteres especiais, depois faço o select na tabela no campo like '%[^A-Z^]%', isto retornará todos os registros que tenham caracteres que não estão de "A a Z", depois de identificados voce pode fazer um update utilizando o replace destes campos por nada '' ou algo que voce queira.
create table teste (teste varchar(100)) insert into teste values ('Nome'), ('Nome' + Char(39)), ('Nome?') select * from teste where teste like '%[^A-Z^]%'
Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
quinta-feira, 20 de setembro de 2012 16:31 -
Alexandre, identifiquei o problema, eu não posso usar collate sql_latin1_general_cp1251_ci_as no campo Complementro_Endereço pois existe muitos registros com APTO Nº e quando isso acontece é colocando um '?' entao eu retirei ...
Sobrou agora poucos registros que não batem no Join, pois estão acentuados. No derived column tem jeito de retirar acentos ?
Tenho que retirar acento da palavra sem usar collation ou replace, pois o filtro esta em um where e não tem como usar o replace para tira á, é, í â etc ...
quinta-feira, 20 de setembro de 2012 17:57 -
o unico jeito que conheço seria o update manual ou usando o replace...
Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator sexta-feira, 21 de junho de 2019 13:59
quinta-feira, 20 de setembro de 2012 18:05