Функция SQL Server REPLICATE

В этом руководстве вы узнаете, как использовать функцию SQL Server REPLICATE() для репликации строки указанное количество раз.

Обзор функции SQL Server REPLICATE()

Функция REPLICATE() повторяет строку указанное количество раз. Ее синтаксис прост и выглядит следующим образом:

REPLICATE(input_string, count);

В этом синтаксисе:

  • input_string — это выражение, результатом вычисления которого является значение символьного или двоичного типа.
  • count — это количество повторений input_string в результирующей строке.

Примеры функции SQL Server REPLICATE()

Давайте рассмотрим несколько примеров использования функции REPLICATE().

A) Использование функции REPLICATE() для повторения текстовой строки

В этом примере функция REPLICATE() используется для повторения символа z три раза:

SELECT
    REPLICATE('z',3) result;

Вот что получилось:

result
------
zzz
(1 row affected)

B) Использование функции REPLICATE() для создания столбцов с ведущими нулями данных

Сначала создайте новую таблицу с именем spare_parts в производственной схеме:

CREATE TABLE production.spare_parts(
    part_id INT IDENTITY PRIMARY KEY,
    part_no VARCHAR(10) NOT NULL UNIQUE,
    description VARCHAR(50) NOT NULL
);

Предположим, что part_no всегда должен содержать 10 символов. Если запасная часть содержит менее 10 символов, приложению необходимо дополнить начальные нули, чтобы длина запасной части всегда составляла 10 символов.

Во-вторых, вставьте некоторые значения в таблицу production.spare_parts:

INSERT INTO 
    production.spare_parts(part_no, description)
VALUES
   ('FRMTUBE','Frame Tube'),
   ('CHNCO','Chain Cover'),
   ('CRKS','Cranks');

В-третьих, выбираем данные из таблицы production.spare_parts, слева дополняем нулями с помощью функции REPLICATE():

SELECT 
    part_id,
    CONCAT(
        REPLICATE('0', 10 - LEN(part_no)), 
        part_no
    ) part_no,
    description
FROM 
    production.spare_parts;

Вот что получилось:

Пример функции SQL Server REPLICATE

В этом примере:

Сначала используйте функцию LEN() для расчета количества добавляемых нулей:

10 - LEN(part_no)

Во-вторых, используйте функцию REPLICATE(), чтобы реплицировать необходимые нули для дополнения:

REPLICATE('0', 10 - LEN(part_no)

В-третьих, используйте функциюCONCAT(), чтобы дополнить номер детали нулями слева:

CONCAT(
    REPLICATE('0', 10 - LEN(part_no)), 
    part_no
) part_no

В этом руководстве вы узнали, как использовать функцию SQL Server REPLICATE() для репликации строки указанное количество раз.

Мирослав С.

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