Published on

September 28, 2021

Explorando a Concatenação de Strings no SQL Server

Problema:

Suponha que você tenha uma tabela no SQL Server que contenha informações do cliente, como nome, sobrenome e endereço de e-mail em colunas separadas. Na aplicação, você deseja exibir o nome completo como nome e sobrenome. Normalmente, os desenvolvedores usam o sinal de mais (+) para concatenar strings, mas o SQL Server fornece as úteis funções de string CONCAT() e CONCAT_WS() para esse propósito.

Solução:

O SQL Server oferece vários métodos para concatenar dados. Uma abordagem comum é usar o símbolo de mais (+) como operador de concatenação. No entanto, esse método pode resultar em valores NULL se alguma das colunas concatenadas tiver valores NULL. Para lidar com valores NULL de forma eficiente, o SQL Server fornece as funções CONCAT() e CONCAT_WS().

A função CONCAT() concatena várias strings, ignorando valores NULL. É necessário especificar o separador cada vez que você deseja usá-lo. Por exemplo:

SELECT CONCAT(AddressLine1, ' ', AddressLine2) AS [Endereço]
FROM [AdventureWorks2017].[Person].[Address]

A função CONCAT_WS(), introduzida no SQL Server 2017, é uma versão aprimorada do CONCAT(). Ela permite que você especifique um separador apenas uma vez e lida automaticamente com valores NULL. Por exemplo:

SELECT CONCAT_WS(',', AddressLine1, AddressLine2) AS [Endereço]
FROM [AdventureWorks2017].[Person].[Address]

Ao usar o CONCAT_WS(), você pode evitar valores NULL na string concatenada e simplificar seu código.

Comparação:

Aqui estão as principais diferenças entre as funções CONCAT() e CONCAT_WS():

  • O CONCAT() requer a especificação do separador cada vez, enquanto o CONCAT_WS() requer apenas uma vez.
  • O CONCAT() retorna NULL se alguma das colunas concatenadas tiver valores NULL, enquanto o CONCAT_WS() ignora valores NULL e processa os parâmetros restantes.

Conclusão:

Ao trabalhar com a concatenação de strings no SQL Server, é recomendado usar a função CONCAT_WS(). Ela simplifica o código ao lidar automaticamente com valores NULL e requer a especificação do separador apenas uma vez. Isso garante um processo de concatenação mais eficiente e confiável.

Referências:

Documentação do Microsoft SQL Server: CONCAT_WS()

Documentação do Microsoft SQL Server: CONCAT()

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.