Pular para o conteúdo principal
Documentos
Sintaxe básicaFunções JSONAcionadoresGerenciamento de tabelas e esquemasFunções de cadeia de caracteresFunções matemáticasFunções de dataBancos de dadosÍndices

PostgreSQL CONCAT_WS

A função `CONCAT_WS` do PostgreSQL é uma função de string utilizada para concatenar duas ou mais strings com um separador especificado. Ele simplifica a união de valores de cadeia de caracteres e garante que o separador seja inserido somente entre valores não nulos.

Uso

O `CONCAT_WS` é usado quando você precisa unir várias cadeias de caracteres com um delimitador, especialmente quando alguns valores podem ser nulos. Ele ajuda a criar saídas concatenadas mais limpas sem separadores à esquerda ou à direita.

sql
CONCAT_WS(separator, string1, string2, ...)

Nessa sintaxe, `separator` é a cadeia de caracteres que separa os valores concatenados, enquanto `string1`, `string2`, etc., são as cadeias de caracteres a serem unidas. Observe que o `CONCAT_WS` está disponível a partir da versão 9.1 do PostgreSQL.

Exemplos

1. Concatenação básica

sql
SELECT CONCAT_WS('-', '2023', '10', '05') AS formatted_date;

Este exemplo concatena as cadeias de caracteres `'2023'`, `'10'` e `'05'` com um hífen (`-`) como separador, resultando em `2023-10-05`.

2. Concatenação com valores nulos

sql
SELECT CONCAT_WS(', ', 'John', NULL, 'Doe') AS full_name;

Aqui, as cadeias de caracteres `'John'` e `'Doe'` são concatenadas com uma vírgula e um espaço (`, `) como separador. O valor `NULL` é ignorado, produzindo `John, Doe`.

3. Concatenação de colunas da tabela

sql
SELECT CONCAT_WS(' ', first_name, middle_name, last_name) AS full_name
FROM employees;

Este exemplo concatena `first_name`, `middle_name` e `last_name` da tabela `employees`, usando um espaço como separador. Os valores nulos em qualquer coluna são automaticamente ignorados.

Dicas e práticas recomendadas

  • Use separadores apropriados. Escolha separadores que tornem o resultado claro e legível.
  • Lidar com nulos de forma eficaz. O `CONCAT_WS` ignora naturalmente os valores nulos, evitando separadores desnecessários.
  • Otimize para facilitar a leitura. Ao concatenar cadeias de caracteres que podem incluir nulos, use `CONCAT_WS` para garantir uma saída limpa e legível.
  • Tratamento de erros: Certifique-se de que todos os argumentos sejam tipos de dados válidos. A passagem de tipos de dados incompatíveis pode resultar em erros.
  • Tenha em mente o desempenho. Embora o `CONCAT_WS` seja eficiente, ele tem um bom desempenho em comparação com funções semelhantes. No entanto, considere o tamanho e a complexidade do banco de dados ao aplicá-lo a grandes conjuntos de dados, pois o desempenho pode variar em consultas complexas.