O PostgreSQL nos fornece as seguintes maneiras de concatenar strings e números:
- O
CONCAT()
função, que concatena seus argumentos. - O operador de concatenação de pipe (
||
), que concatena seus operandos.
Exemplos de cada um abaixo.
O CONCAT()
Função
O
CONCAT()
A função concatena as representações de texto de seus argumentos. Exemplo:
SELECT CONCAT('Player', 456);
Resultado:
Player456
Podemos incluir um espaço, adicionando um espaço à string existente ou concatenando incluindo um terceiro argumento que consiste apenas em um espaço:
SELECT
CONCAT('Player ', 456) AS "Option 1",
CONCAT('Player', ' ', 456) AS "Option 2";
Resultado:
Option 1 | Option 2 ------------+------------ Player 456 | Player 456
O operador de concatenação de tubos (||
)
Este exemplo usa o operador de concatenação (
||
):SELECT 'Player ' || 456;
Resultado:
Player 456
Nesse caso, acrescentei um espaço ao primeiro argumento.
Concatenando números sem uma string
Se você precisar concatenar dois números, mas nenhuma string, você precisará converter pelo menos um dos números em uma string primeiro. Caso contrário, ocorre um erro.
Exemplo do erro:
SELECT 123 || 456;
Resultado:
ERROR: operator does not exist: integer || integer LINE 1: SELECT 123 || 456; ^ HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
Aqui está uma maneira rápida de superar esse problema:
SELECT CAST(123 AS varchar(3)) || 456;
Resultado:
123456