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