Uma das funções que está no SQL Server desde versão 2012, é a função ‘CONCAT’, essa função é utilizada para concatenar dois ou mais valores.
Talvez fiquem na dúvida, qual motivo irei utilizar a função ‘CONCAT’ no lugar de utilizar o bom e velho ‘+’? Simplesmente pelo motivo de não precisar se preocupar com os tipos de dados que está concatenando, com a função ‘CONCAT’, pode-se concatenar string com data, com inteiro, float, vamos ver na prática como funciona.
Para o exemplo, será criada uma tabela simples, sem preocupação com chaves ou índices e será inserido alguns valores.
Notem que na tabela possui campos do tipo varchar e data.
[sourcecode language=”sql”]
CREATE TABLE T_PESSOA
(
NOME VARCHAR(50),
SOBRENOME VARCHAR(50),
DATANASCIMENTO DATE,
TELEFONE VARCHAR(20)
);
GO
INSERT INTO T_PESSOA (NOME, SOBRENOME, DATANASCIMENTO, TELEFONE)
VALUES (‘JOÃO’, ‘SILVA JUNIOR’, GETDATE()-10000, ‘(11) 2105-5432’);
GO
INSERT INTO T_PESSOA (NOME, SOBRENOME, DATANASCIMENTO, TELEFONE)
VALUES (‘KLEBER’, ‘JUNIOR’, GETDATE()-20000, ‘(47) 2199-5212’);
GO
[/sourcecode]
Agora vamos ao ver como fica a concatenação com a utilização da função ‘CONCAT’.
[sourcecode language=”sql”]
SELECT CONCAT(NOME, ‘ ‘, SOBRENOME, ‘ ‘, DATANASCIMENTO, ‘ ‘, TELEFONE) AS CONCATENADO
FROM T_PESSOA;
[/sourcecode]
Vejam o resultado.
Caso tivesse utilizado o ‘+’ para realizar esse tipo de concatenação seria apresentado o erro abaixo.
“Msg 402, Level 16, State 1, Line 24
The data types varchar and date are incompatible in the add operator.”
Caso queiram ler as especificações oficiais da Microsoft acessem o link CONCAT
BOM DIA MEU AMIGO! ÓTIMO POST!
SÓ QUE QUANDO VOU EXECUTAR A QUERY OCORRE ESSA MSG DE ERRO: Msg 195, Level 15, State 10, Line 1
‘CONCAT’ is not a recognized built-in function name.
NOTA USO O SQL SERVER 2008 R2 RTM. O QUE PODE SER?