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
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.
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
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?
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.
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.
tenta assim
SELECT campo1, campo2, (campo1+campo2) as teste FROM tabela WHERE teste = ‘teeee’
por favor, no exemplo do sql como resolver caso apareça no meio das selecoes um valor em uma das colunas NULL? obrigado!
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
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…
Opa… Muito boa a dica… Me salvou hoje utilizando o MySQL.
Abraços!!
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 “||” )
digo… se há como concatenar no MySQL semelhante ao postgreSQL… há como?
Uso o mysql fiz um Concat mas ele nao exibe no dbgrid do meu delphi…
o que faço?
se puder me ajudar obrigado
pootz cara delphi não eh a minha praia !
/** * [s] Anselmo Battisti * —————————- * Cadastro On-Line de Cliente * http://clientec.com.br **/
________________________________
Ola, gostaria muito da sua ajuda… eu estou tentando fazer um select numa tabela no Postgre, é o seguinte código:
select prod.nome, forn.razaosocial from PRODUTOS AS prod, FORNECEDOR as forn, CATEGORIA_PRODUTO as catprod
where prod.cod_categoria = ’11’ and forn.codigo = 3 and forn.codigo = 4
O problema é, não retorna nada!! no meu select eu quero que ele traga os produtos de uma certa categoria, mas se sejam de dois fornecedores, e eu não estou conseguindo.. Alguém se habilita? Beijoo!
priscila desculpe respondi por fora do responder mas segue ai a resposta, espero ter ajudado!
select prod.nome, forn.razaosocial from PRODUTOS AS prod, FORNECEDOR as forn, CATEGORIA_PRODUTO as catprod
where prod.cod_categoria = ’11′ and forn.codigo IN (3,4);
Isso deve resolver seu problema 😀
priscila faz da seguinte forma;
select prod.nome, forn.razaosocial from PRODUTOS AS prod, FORNECEDOR as forn, CATEGORIA_PRODUTO as catprod
where prod.cod_categoria = ‘11′ and forn.codigo = 3 or prod.cod_categoria = ‘11′ and forn.codigo = 4
observe o seguinte apos a clausula ‘or’ voce tem que repetir todos os criterios se nao o resultado é equivocado! veja se lhe ajuda!
sugiro colocar os WHERE entre parênteses para aumentar legibilidade de sua SQL, além de usar o OR no lugar do AND antes do último parâmetro!
anselmo voce diz deixar assim;
select prod.nome, forn.razaosocial from PRODUTOS AS prod, FORNECEDOR as forn, CATEGORIA_PRODUTO as catprod
where (prod.cod_categoria = ‘11′ and forn.codigo = 3) or (prod.cod_categoria = ‘11′ and forn.codigo = 4)
? obrigado
boa tarde, entao tenho a seguinte duvida, eu consigo concatenar a mesma coluna, por exemplo, select concat(id_compra,”-“) as cod_compra, id_cliente, sum(valor) as total from compras group by id_cliente
oq eu quero é concatenar o id_compra com o id_compra da proxima linha, por exemplo o cliente, comprou dia 10, $100, dia 20 $50, a compra do dia 10 tem id 90 e a do dia 20 tem id 234, queria armazenar os valores dos ids das compras assim 90-234 no cod_compra e assim por diante, sei fazer isso no php mas queria ja otimizar e fazer direto na query.
att
Abr Vanelli
Você precisa fazer um cast para string antes de concatenas as colunas
…estou acostumado com MySQL com a função CONCAT(x, y, z) …tive que procurar para saber no MySQL.
Valeu pelo post.
Grande Anselmo!
Me salvou a pele! Concat não funciona no Postgre antigo!
Valeu!
[…] Anselmo – Concatenar duas Colunas no PostgreSQL, MySQL e SQL Server […]
[…] Anselmo – Concatenar duas Colunas no PostgreSQL, MySQL e SQL Server […]