Problema na Concatenação de Campos no SQL SERVER 2008R2
Bom dia,
Eu estou tentando concatenar dois campos na minha tabela de endereços, esses dois campos seriam: Logradouro e Endereço.
O select é: SELECT CdLog + ' ' +Ender FROM EndCli
Ao invés de resultar isso: AV Paulista
O resultado é esse: AV
Eu notei que esse campo Ender não aparece com nenhum campo, ele só aparece no resultado se eu der um SELECT Ender, CdLog... FROM EndCli, ou seja, sem fazer concatenação nenhuma.
Obs: Os dois campo são do tipo: VARCHAR.
Obrigado.
Eu estou tentando concatenar dois campos na minha tabela de endereços, esses dois campos seriam: Logradouro e Endereço.
O select é: SELECT CdLog + ' ' +Ender FROM EndCli
Ao invés de resultar isso: AV Paulista
O resultado é esse: AV
Eu notei que esse campo Ender não aparece com nenhum campo, ele só aparece no resultado se eu der um SELECT Ender, CdLog... FROM EndCli, ou seja, sem fazer concatenação nenhuma.
Obs: Os dois campo são do tipo: VARCHAR.
Obrigado.
Wylliam
Curtidas 0
Melhor post
Wylliam
14/08/2013
Isso, na verdade o CdLog é o Código do Logradouro. Ex: AV, R, EST, etc...
GOSTEI 1
Mais Respostas
Rodrigo Lacerda
14/08/2013
Pelo que você disse deve ser algum erro no código... posso estar errado , mas poderia colocar o codigo aqui para verificarmos?
Att
Att
GOSTEI 0
Wylliam
14/08/2013
O select que eu faço no Microsoft SQL Management Studio é
SELECT CdLog+' '+Ender
FROM EndCli
WHERE NrContrCli = '200300418726'
SELECT CdLog+' '+Ender
FROM EndCli
WHERE NrContrCli = '200300418726'
GOSTEI 0
Wylliam
14/08/2013
O select que eu faço no Microsoft SQL Management Studio é
SELECT CdLog+' '+Ender
FROM EndCli
WHERE NrContrCli = '200300418726'
SELECT CdLog+' '+Ender
FROM EndCli
WHERE NrContrCli = '200300418726'
O problema está na hora de fazer o select no SGBD, eu ainda não testei a query no código do meu programa.
GOSTEI 0
Deivison Melo
14/08/2013
Em algumas situações talvez seja necessário fazer um cast nos campos que estão sendo concatenados...
Pesquisa sobre concatenação de campos com o SQL Server...
Dá uma olhadinha no exemplo do link abaixo:
http://social.msdn.microsoft.com/Forums/sqlserver/pt-BR/e63ad5f6-7898-4c30-a6ec-9e5b9de2871f/concatenar-no-sql-server
Pesquisa sobre concatenação de campos com o SQL Server...
Dá uma olhadinha no exemplo do link abaixo:
http://social.msdn.microsoft.com/Forums/sqlserver/pt-BR/e63ad5f6-7898-4c30-a6ec-9e5b9de2871f/concatenar-no-sql-server
GOSTEI 0
Wylliam
14/08/2013
Os dois campo são:
CdLog: VARCHAR(10)
Ender: VARCHAR(40)
Não seria questão de incompatibilidade de tipos, mas por desencargo eu fiz assim:
SELECT (CONVERT(VARCHAR(40), CdLog)+' '+CONVERT(VARCHAR(40), Ender)) AS Endereço
FROM EndCli
WHERE NrContrCli = '200300418726'
e
SELECT (CAST(CdLog AS VARCHAR(40))+' '+CAST(Ender AS VARCHAR(40))) AS Endereço
FROM EndCli
WHERE NrContrCli = '200300418726'
Mas o problema persiste.
Obrigado.
CdLog: VARCHAR(10)
Ender: VARCHAR(40)
Não seria questão de incompatibilidade de tipos, mas por desencargo eu fiz assim:
SELECT (CONVERT(VARCHAR(40), CdLog)+' '+CONVERT(VARCHAR(40), Ender)) AS Endereço
FROM EndCli
WHERE NrContrCli = '200300418726'
e
SELECT (CAST(CdLog AS VARCHAR(40))+' '+CAST(Ender AS VARCHAR(40))) AS Endereço
FROM EndCli
WHERE NrContrCli = '200300418726'
Mas o problema persiste.
Obrigado.
GOSTEI 0
Gabriel Simas
14/08/2013
Wylliam,
Tente utilizar parenteses como no exemplo abaixo, eu sempre uso desta forma e funciona:
Tente utilizar parenteses como no exemplo abaixo, eu sempre uso desta forma e funciona:
SELECT (LastName + ', ' + FirstName) AS Name FROM Person.Person
GOSTEI 0
Wylliam
14/08/2013
Tentei assim:
SELECT (CdLog+' '+Ender) As Endereço
FROM EndCli
WHERE NrContrCli = '200300418726'
Não funcionou também.
SELECT (CdLog+' '+Ender) As Endereço
FROM EndCli
WHERE NrContrCli = '200300418726'
Não funcionou também.
GOSTEI 0
Gabriel Simas
14/08/2013
Tentei assim:
SELECT (CdLog+' '+Ender) As Endereço
FROM EndCli
WHERE NrContrCli = '200300418726'
Não funcionou também.
SELECT (CdLog+' '+Ender) As Endereço
FROM EndCli
WHERE NrContrCli = '200300418726'
Não funcionou também.
Wyll,
Posta a mensagem de erro pra gente por favor.
Forte Abraço
GOSTEI 0
Wylliam
14/08/2013
Então, na verdade não tem mensagem de erro. A query apenas tras o valor do campo CdLog.
Obs: Tanto o CdLog e o Ender contem valores.
Obs: Tanto o CdLog e o Ender contem valores.
GOSTEI 0
Alex Lekao
14/08/2013
Ola Wyllian, boa tarde!!!
Experimenta colocar uma virgula no exemplo da concatenacao para ver se resolve.
Era para ter funcionado.
Em todo caso estou testando com minha base aqui da empresa que temos campos parecidos com o seu, e posto aqui ja ja o codigo que fiz e se funcionou.
Abraco.
Experimenta colocar uma virgula no exemplo da concatenacao para ver se resolve.
Era para ter funcionado.
Em todo caso estou testando com minha base aqui da empresa que temos campos parecidos com o seu, e posto aqui ja ja o codigo que fiz e se funcionou.
Abraco.
GOSTEI 0
Wylliam
14/08/2013
Cara, nem a virgula aparece....
SELECT (CdLog+','+Ender) As Endereço
FROM EndCli
WHERE NrContrCli = '200300418726'
Só me retornou o campo CdLog que é "R" para esse fulano ai...
SELECT (CdLog+','+Ender) As Endereço
FROM EndCli
WHERE NrContrCli = '200300418726'
Só me retornou o campo CdLog que é "R" para esse fulano ai...
GOSTEI 0
Alex Lekao
14/08/2013
Ola Wylliam,
Muito estranho o que esta acontecendo.
Aqui no meu teste apareceu tudo normal, com espaco entre as aspas, sem espaco, com uma virgula, com dois pontos.
no meu caso os dois campos que usei, bairro e endereco, sao varchar()60.
O codigo eh exatamente este que vc postou?
Muito estranho o que esta acontecendo.
Aqui no meu teste apareceu tudo normal, com espaco entre as aspas, sem espaco, com uma virgula, com dois pontos.
no meu caso os dois campos que usei, bairro e endereco, sao varchar()60.
O codigo eh exatamente este que vc postou?
GOSTEI 0
Wylliam
14/08/2013
Sim, exatamente esse.
Não passa por minha cabeça como isso pode ocorrer
Não passa por minha cabeça como isso pode ocorrer
GOSTEI 0
Alex Lekao
14/08/2013
tambem nao passsa nada pela minha cabeca.
o codlog eh o logradouro certo? avenida, alameda, etc?
experimente usar o substr para ver se da certo.
o codlog eh o logradouro certo? avenida, alameda, etc?
experimente usar o substr para ver se da certo.
GOSTEI 0
Alex Lekao
14/08/2013
eh... foi isto mesmo que quis dizer... rsrsr
GOSTEI 0
Daniel Costa
14/08/2013
Pergunta
rodou a consulta abaixo no Management Studio para verificar se ender tá preeenchido...sei lá vai que....
SELECT (CdLog+' '+Ender) As Endereço, ender
FROM EndCli
WHERE NrContrCli = '200300418726'
O resultado dessa query cai em um dataset tipado, pois ees dataset pode ter limitação
roda essa consulta de baixo só dew curiosidade, ela trata nulo e vazio
SELECT top 100 (CdLog+' '+Ender) As Endereço, ender
FROM EndCli
WHERE len(rtrim(ltrim(isnull(ender,'')))) <> 0
rodou a consulta abaixo no Management Studio para verificar se ender tá preeenchido...sei lá vai que....
SELECT (CdLog+' '+Ender) As Endereço, ender
FROM EndCli
WHERE NrContrCli = '200300418726'
O resultado dessa query cai em um dataset tipado, pois ees dataset pode ter limitação
roda essa consulta de baixo só dew curiosidade, ela trata nulo e vazio
SELECT top 100 (CdLog+' '+Ender) As Endereço, ender
FROM EndCli
WHERE len(rtrim(ltrim(isnull(ender,'')))) <> 0
GOSTEI 0