Функция SQL Server CONCAT()

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

На следующем рисунке показан результат:

Функция SQL Server CONCAT — пример столбца таблицы

Использование функции 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;

Вот частичный вывод в текстовом формате:

Пример функции SQL Server CONCAT с NULL

Как ясно видно из выходных данных, если у клиента нет номера телефона, функция CONCAT() использует пустое значение для конкатенации.

Обратите внимание, что в этом примере мы использовали функцию CHAR() для получения символа новой строки.

Краткое содержание

  • Используйте функцию SQL Server CONCAT() для объединения двух или более строк в одну.
Мирослав С.

Автор статей, ИБ-специалист