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.

 

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

Agora vamos ao ver como fica a concatenação com a utilização da função ‘CONCAT’.

 
SELECT CONCAT(NOME, '  ', SOBRENOME, '  ', DATANASCIMENTO, '  ', TELEFONE) AS CONCATENADO
FROM T_PESSOA;

Vejam o resultado.

SELECT CONCAT

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


1 comentário

JOEL ALVES · 16 de janeiro de 2017 às 13:20

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?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *