Повечето от основните RDBMS предоставят няколко опции за конкатенация на два или повече низове.
- Има
CONCAT()
функция, която конкатенира своите аргументи. - Има и
CONCAT_WS()
което ви позволява да зададете разделител, който разделя конкатенираните низове. - Има и оператор за конкатенация на низове, който ни позволява да конкатенираме неговите операнди.
По-долу са дадени примери за всеки метод.
CONCAT()
Функция
Повечето основни RDBMS предоставят CONCAT()
функция за конкатенация на нейните низови аргументи. Обикновено аргументите, които не са низови, се преобразуват в низ, преди да настъпи конкатенацията.
Пример:
SELECT CONCAT('Bangkok', 'Breaking');
Резултат:
BangkokBreaking
С тази функция, ако искаме да включим интервал между низовете, ще трябва или да добавим интервал към един от низовете, или да включим интервал като отделен аргумент:
SELECT
CONCAT('Bangkok ', 'Breaking') AS "Option 1",
CONCAT('Bangkok', ' ', 'Breaking') AS "Option 2";
Резултат:
+------------------+------------------+ | Option 1 | Option 2 | +------------------+------------------+ | Bangkok Breaking | Bangkok Breaking | +------------------+------------------+
RDBMS, които имат CONCAT()
функция включва MySQL, MariaDB, SQL Server, Oracle и PostgreSQL.
SQLite не включва CONCAT()
функция, но прави имат оператор за конкатенация на низове (вижте по-долу).
CONCAT_WS()
Функция
Друг начин да включите интервал между низовете е да използвате CONCAT_WS()
функция. Тази функция ви позволява да посочите разделител, който ще се използва за разделяне на всички свързани низове.
Пример:
SELECT CONCAT_WS(' ', 'Bangkok', 'Breaking');
Резултат:
BangkokBreaking
Тази функция може да бъде особено полезна, ако имате много низове за конкатенация:
SELECT CONCAT_WS(', ', 'Red', 'Green', 'Orange', 'Blue');
Резултат:
Red, Green, Orange, Blue
В такива случаи трябва само веднъж да посочите разделителя.
RDBMS, които имат CONCAT_WS()
функция включва MySQL, MariaDB, SQL Server и PostgreSQL.
SQLite и Oracle нямат CONCAT_WS()
функция, но те правят имат оператор за конкатенация на низове (вижте по-долу).
Операторът за конкатенация на низове
Повечето RDBMS включват оператор за конкатенация на низове, който конкатенира неговите операнди.
Ако използвате SQLite, това е единствената ви опция.
Пример:
SELECT 'Spy' || 'craft';
Резултат:
Spycraft
Имайте предвид, че в MySQL ще трябва първо да активирате оператора за конкатенация на тръби.
Същото важи и за MariaDB.
SQL сървър
Горният пример няма да работи в SQL Server. В SQL Server използвайте знака плюс (+
) оператор за конкатенация на низове:
SELECT 'Spy' + 'craft';
Резултат:
Spycraft