В этом руководстве вы узнаете, как использовать функцию SQL Server CONCAT() для объединения нескольких строк в одну.
Обзор функции SQL Server CONCAT()
Чтобы объединить две или более строк в одну, используйте функцию CONCAT() со следующим синтаксисом:
CONCAT( input_string1, input_string2 [, input_stringN ] );
CONCAT() принимает две входные строки длиной до 255 и объединяет их в одну. Для этого требуется не менее двух входных строк. Если вы передадите одну входную строку, функция CONCAT() выдаст ошибку.
Если вы передаете несимвольные строковые значения, функция CONCAT() неявно преобразует эти значения в строки перед конкатенацией.
Функция CONCAT() также преобразует NULL в пустую строку с типом VARCHAR(1).
Обратите внимание: для добавления разделителя во время конкатенации используется функция CONCAT_WS().
Примеры функции CONCAT() SQL Server
Давайте рассмотрим несколько примеров, чтобы познакомиться с функцией CONCAT().
Использование функции CONCAT() с литеральными строками
В следующем примере функция CONCAT() используется для объединения трех строковых литералов John, space и Doe:
SELECT
'John' + ' ' + 'Doe' AS full_name;
Вот что получилось:
full_name --------- John Doe (1 row affected)
Использование функции CONCAT() со столбцами таблицы
В этом примере используется таблица sales.customers из образца базы данных.

Следующий оператор использует функцию CONCAT() для объединения значений в столбцах first_name и last_name таблицы sales.customers:
SELECT
customer_id,
first_name,
last_name,
CONCAT(first_name, ' ', last_name) full_name
FROM
sales.customers
ORDER BY
full_name;
На следующем рисунке показан результат:

Использование функции CONCAT() с NULL
В следующем примере функция CONCAT() используется для форматирования адресов клиентов:
SELECT
CONCAT(
CHAR(13),
CONCAT(first_name,' ',last_name),
CHAR(13),
phone,
CHAR(13),
CONCAT(city,' ',state),
CHAR(13),
zip_code
) customer_address
FROM
sales.customers
ORDER BY
first_name,
last_name;
Вот частичный вывод в текстовом формате:

Как ясно видно из выходных данных, если у клиента нет номера телефона, функция CONCAT() использует пустое значение для конкатенации.
Обратите внимание, что в этом примере мы использовали функцию CHAR() для получения символа новой строки.
Краткое содержание
- Используйте функцию SQL Server CONCAT() для объединения двух или более строк в одну.


