PostgreSQL nám poskytuje následující způsoby zřetězení řetězců a čísel:
CONCAT()
funkce, která zřetězí své argumenty.- Operátor zřetězení potrubí (
||
), který zřetězí své operandy.
Příklady každého níže.
CONCAT()
Funkce
CONCAT()
funkce zřetězí textové reprezentace svých argumentů.
Příklad:
SELECT CONCAT('Player', 456);
Výsledek:
Player456
Mezeru můžeme zahrnout buď přidáním mezery k existujícímu řetězci, nebo zřetězením zahrnutím třetího argumentu, který se skládá pouze z mezery:
SELECT
CONCAT('Player ', 456) AS "Option 1",
CONCAT('Player', ' ', 456) AS "Option 2";
Výsledek:
Option 1 | Option 2 ------------+------------ Player 456 | Player 456
Operátor zřetězení potrubí (||
)
Tento příklad používá operátor zřetězení (||
):
SELECT 'Player ' || 456;
Výsledek:
Player 456
V tomto případě jsem k prvnímu argumentu přidal mezeru.
Zřetězení čísel bez řetězce
Pokud potřebujete zřetězit dvě čísla, ale žádné řetězce, budete muset nejprve přetypovat alespoň jedno z čísel na řetězec. Jinak dojde k chybě.
Příklad chyby:
SELECT 123 || 456;
Výsledek:
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.
Zde je rychlý způsob, jak tento problém vyřešit:
SELECT CAST(123 AS varchar(3)) || 456;
Výsledek:
123456