Většina hlavních RDBMS poskytuje několik možností pro zřetězení dvou nebo více řetězců.
- Je tam
CONCAT()
funkce, která zřetězí své argumenty. - Je zde také
CONCAT_WS()
který vám umožňuje určit oddělovač, který odděluje zřetězené řetězce. - A existuje také operátor zřetězení řetězců, který nám umožňuje zřetězit jeho operandy.
Níže jsou uvedeny příklady jednotlivých metod.
CONCAT()
Funkce
Většina hlavních RDBMS poskytuje CONCAT()
funkce pro zřetězení jeho argumentů řetězce. Obecně platí, že neřetězcové argumenty jsou převedeny na řetězec předtím, než dojde ke zřetězení.
Příklad:
SELECT CONCAT('Bangkok', 'Breaking');
Výsledek:
BangkokBreaking
S touto funkcí, pokud chceme vložit mezeru mezi řetězce, musíme buď přidat mezeru k jednomu z řetězců, nebo zahrnout mezeru jako samostatný argument:
SELECT
CONCAT('Bangkok ', 'Breaking') AS "Option 1",
CONCAT('Bangkok', ' ', 'Breaking') AS "Option 2";
Výsledek:
+------------------+------------------+ | Option 1 | Option 2 | +------------------+------------------+ | Bangkok Breaking | Bangkok Breaking | +------------------+------------------+
RDBMS, které mají CONCAT()
funkce zahrnují MySQL, MariaDB, SQL Server, Oracle a PostgreSQL.
SQLite neobsahuje CONCAT()
funkce, ale funguje mají operátor zřetězení řetězců (viz níže).
CONCAT_WS()
Funkce
Dalším způsobem, jak vložit mezeru mezi řetězce, je použít CONCAT_WS()
funkce. Tato funkce vám umožňuje určit oddělovač, který bude použit k oddělení všech zřetězených řetězců.
Příklad:
SELECT CONCAT_WS(' ', 'Bangkok', 'Breaking');
Výsledek:
Bangkok Breaking
Tato funkce může být zvláště užitečná, pokud máte mnoho řetězců ke zřetězení:
SELECT CONCAT_WS(', ', 'Red', 'Green', 'Orange', 'Blue');
Výsledek:
Red, Green, Orange, Blue
V takových případech stačí zadat oddělovač pouze jednou.
RDBMS, které mají CONCAT_WS()
funkce zahrnují MySQL, MariaDB, SQL Server a PostgreSQL.
SQLite a Oracle nemají CONCAT_WS()
funkce, ale dělají mají operátor zřetězení řetězců (viz níže).
Operátor zřetězení řetězců
Většina RDBMS obsahuje operátor zřetězení řetězců, který zřetězí jeho operandy.
Pokud používáte SQLite, je to vaše jediná možnost.
Příklad:
SELECT 'Spy' || 'craft';
Výsledek:
Spycraft
Všimněte si, že v MySQL budete muset nejprve povolit operátor zřetězení potrubí.
Totéž platí pro MariaDB.
SQL Server
Výše uvedený příklad nebude fungovat v SQL Server. V SQL Server použijte znaménko plus (+
) operátor zřetězení řetězců:
SELECT 'Spy' + 'craft';
Výsledek:
Spycraft