Concatenar Duas Colunas no Postgres / Sql Server / MySQL

1 09 2007

No Postgres

Para concatenar duas colunas no postgres, ou duas strings utilize ||

SELECT  colunaA || colunaB as colunaAB FROM tabela

Contribuição do meu amigo Ivan:

Se você tiver uma coluna que possa ter um valor nulo então é necessário utilizar o operador coalesce pois NULL concatenado com qualquer coisa dá NULL.

SELECT (coalesce((colunaA),'') || coalesce((colunaB),'')) AS colunaAB FROM tabela

Caso seja necessário concatenar colunas do tipo int então será necessário antes disso converter os

coalesce(cast(colunaA as varchar),'') || coalesce(cast(colunaB as varchar), '') as colunaAB

No SQL Server

O sinal de + é usado para concatena strings, desta forma:

SELECT coluna1 + coluna2 as coluna12 FROM tabela

irá concatenar a coluna1 com a coluna2.

Caso sua coluna seja de um tipo diferente, inteiro ou float por exemplo será necessário fazer um cast desta forma:

SELECT  (cast(coluna1 as varchar) + ' - ' +  cast(coluna2 as varchar)) as coluna12   FROM tabela

Caso uma coluna puder ser nula então use o IsNul(coluna1,’ ‘) para trocar seu valor nulo por um espaço pois lembrem-se nulo com qualquer coisa é sempre nulo.

No MySQL

SELECT concat(coluna1,’ – ‘,coluna2) FROM tabela

coalesce(cast(funcionario_associado.ass_cod as varchar),”) || coalesce(cast(fa.ass_cod as varchar), ”) as ass_cod,

Ações

Informações

12 respostas

10 03 2008
omailing

Olá, não tenho experência em SQL, mas, tenho um banco de dados enorme, e preciso concatenar duas colonas inteiras. Como poderia fazer isso no Access?

Vlw.

10 03 2008
battisti

Se você quer fisicamente transformar duas colunas em uma só a minha dica é:

1 – Crie a nova coluna
2 – você deve estar usando asp, faça um script em asp que percorra todas as linhas dessa tabelas e faça o update de sua nova colunas

E mais uma coisa troca esse banco Access tem problemas crônicos por exemplo ele não possui ferramenta remota de gerência e o que é pior, você precisa do Access na máquina para poder gerenciar o banco. Fica a dica se puder troca de banco meta bala, usa mysql, postgres tem um monte de banco com e livre flw

12 03 2008
omailing

Opa, obrigado!
Usei o DataBase View Editor comandos:

SELECT colunaA + colunaB as colunaAB FROM tabelaX

Deu certo, o problema agora é outro:
Esta pesquisa me deu uma coluna de registros, agora preciso importá-la para um banco de dados, achar coincidências e exportar as tabelas deste banco.

Poderia me ajudar?

12 03 2008
battisti

Bom ai depende do que o teu banco destino aceita, no caso de um mysql por exemplo você pode exportar um cvs, ou ainda uma solução mais genérica e que funciona para todos os bancos é fazer um script que leia a linhas que essa sua consulta te retornou e gere os INSERT INTO, depois executa este resultado no teu banco de destino.

18 06 2009
Diego

Boa tarde, estou com um problema onde preciso comparar um campo concatenado no SQL sever e não estou conseguindo a sintaxe é a :

SELECT campo1, campo2 FROM tabela WHERE (campo1 + campo2) campo3

todos são campos de texto, alguém pode me ajudar por favor ?

Att’
Diego.

18 06 2009
battisti

tenta assim

SELECT campo1, campo2, (campo1+campo2) as teste FROM tabela WHERE teste = ‘teeee’

23 06 2009
nathan

por favor, no exemplo do sql como resolver caso apareça no meio das selecoes um valor em uma das colunas NULL? obrigado!

24 06 2009
battisti

essa coluna que ta voltando NULL é de que tipo, se for varchar da uma olhada se o valor default do campo esta null, se sim deixa em braco, ou tenta fazer um casta igual o que foi feito com o postgres

24 06 2009
nathan

na realidade é uma tabela importada do excell, que eu preciso jogar em uma tabela do sistema… o campo de destino é um varchar agora o de origem(excell) nvarchar…

24 08 2009
Joni

Opa… Muito boa a dica… Me salvou hoje utilizando o MySQL.

Abraços!!

30 09 2009
Willians

o post é bem antiguinho, mas…. há outra forma de concatenar semelhante ao postgreSQL?

No Oracle você pode concatenar igual o ao postgre ( utilizando 2 pipe’s “||” )

30 09 2009
Willians

digo… se há como concatenar no MySQL semelhante ao postgreSQL… há como?

Deixe um comentário