В этом руководстве вы узнаете, как использовать функцию 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() для объединения двух или более строк в одну.