A concatenação de dados é o resultado da junção de mais de uma informação, que podem ou não estar na mesma coluna da tabela. Um exemplo prático de concatenação que usamos em nosso dia a dia é o telefone: DDD + Número.
Já abordei aqui no blog como realizar a concatenação em MySQL e PostgreSQL:
No SQL Server, em especifico nas versões anteriores a 2012, a forma de concatenação é diferente dos demais bancos de dados.
O formato nativo do é:
select
'(' + cod_area + ') ' + telefone
from
clientes ;
Como vemos, os dados são concatenados com auxílio do operador + (mais).
Já na versão 2012, o SQL Server incorporou como função nativa o Concat, assim como o MySQL e Oracle:
select
concat('(', cod_area, ')', telefone)
from
clientes ;
É importante se ressaltar que, a concatenação de tipos de dados diferentes pode causar erros no resultado do select, fique atento quanto a isto.
Grande abraço e até a próxima.
Referências:
http://blog.sqlauthority.com/2010/11/25/sql-server-concat-function-in-sql-server-sql-concatenation/
http://msdn.microsoft.com/pt-br/library/hh231515.aspx
http://stackoverflow.com/questions/10550307/concat-function-in-sql-server
Uma boa prática também é usar o COALESCE combinado com o CONCAT, não sei no caso do MSSQL, mas no MySQL, uso assim:
ResponderExcluirSELECT CONCAT(coalesce(cidade,''), ' - ', coalesce(municipio,'')) AS local FROM TABELA
isso impede trazer a concatenação totalmente vazia, caso um dos campos concatenados seja nulo, então ele converte para vazio e concatena, trazendo:
FORTALEZA - CE
LAURO DE FREITAS - BA
"CAMPO VAZIO" - SP
Olá Souzace,
ExcluirPerfeita colocação, no SQL Server o comando é o isnull, com ele evitamos o retorno null no resultado do concat.
Como sugestão no MySQL, use se for o CONCAT_WS.
Abraços e obrigado pela contribuição.