Função CONCAT
A função CONCAT concatena duas expressões e retorna a expressão resultante. Para concatenar mais de duas strings, use funções CONCAT aninhadas. O operador de concatenação (||
) entre duas expressões produz os mesmos resultados que a função CONCAT.
Sintaxe
CONCAT ( expression1, expression2 )
Argumentos
- expression1, expression2
-
Os dois argumentos podem ser uma cadeia de caracteres de comprimento fixo, uma cadeia de caracteres de comprimento variável, uma expressão binária ou uma expressão que é avaliada para uma dessas entradas.
Tipo de retorno
CONCAT retorna uma expressão. O tipo de dados da expressão é o mesmo tipo dos argumentos de entrada.
Se as expressões de entrada forem de tipos diferentes, o Amazon Redshift tentará converter implicitamente o tipo de uma das expressões. Se os valores não puderem ser convertidos, será retornado um erro.
Observações de uso
Tanto para a função CONCAT como para o operador de concatenação, se uma ou ambas as expressões forem nulas, o resultado da concatenação será null.
Exemplos
O seguinte exemplo concatena dois literais de caracteres:
SELECT CONCAT('December 25, ', '2008');
concat
-------------------
December 25, 2008
(1 row)
A seguinte consulta, usando o operador ||
em vez de CONCAT, produz o mesmo resultado:
SELECT 'December 25, '||'2008';
?column?
-------------------
December 25, 2008
(1 row)
O exemplo a seguir usa uma função CONCAT aninhada dentro de outra função CONCAT para concatenar três strings:
SELECT CONCAT('Thursday, ', CONCAT('December 25, ', '2008'));
concat
-----------------------------
Thursday, December 25, 2008
(1 row)
Para concatenar colunas que possam conter NULLs, use Funções NVL e COALESCE, que retorna determinado valor quando encontra NULL. O seguinte exemplo usa NVL para retornar um 0 sempre que NULL for encontrado.
SELECT CONCAT(venuename, CONCAT(' seats ', NVL(venueseats, 0))) AS seating
FROM venue WHERE venuestate = 'NV' OR venuestate = 'NC'
ORDER BY 1
LIMIT 5;
seating
-----------------------------------
Ballys Hotel seats 0
Bank of America Stadium seats 73298
Bellagio Hotel seats 0
Caesars Palace seats 0
Harrahs Hotel seats 0
(5 rows)
A seguinte consulta concatena os valores CITY e STATE da tabela VENUE:
SELECT CONCAT(venuecity, venuestate)
FROM venue
WHERE venueseats > 75000
ORDER BY venueseats;
concat
-------------------
DenverCO
Kansas CityMO
East RutherfordNJ
LandoverMD
(4 rows)
A seguinte consulta usa funções CONCAT aninhadas. A consulta concatena os valores CITY e STATE da tabela VENUE, mas delimita a string resultante com uma vírgula e um espaço:
SELECT CONCAT(CONCAT(venuecity,', '),venuestate)
FROM venue
WHERE venueseats > 75000
ORDER BY venueseats;
concat
---------------------
Denver, CO
Kansas City, MO
East Rutherford, NJ
Landover, MD
(4 rows)
O exemplo a seguir concatena duas expressões binárias. Onde abc
é um valor binário (com uma representação hexadecimal de 616263
) e def
é um valor binário (com representação hexadecimal de 646566
). O resultado é exibido automaticamente como a representação hexadecimal do valor binário.
SELECT CONCAT('abc'::VARBYTE, 'def'::VARBYTE);
concat
-------------------
616263646566