В SQL Server, T-SQL REPLICATE()
функцията повтаря стойност на низ определен брой пъти и връща резултата.
Функцията приема два аргумента; входния низ и колко пъти трябва да се повтори.
Синтаксис
Синтаксисът е така:
REPLICATE ( string_expression ,integer_expression )
Където низов_израз е входният низ. Това могат да бъдат или символни, или двоични данни.
И integer_expression е цяло число, което указва колко пъти да се повтори входният низ. Това може да бъде всеки тип цяло число, включително bigint .
Имайте предвид, че ако първият аргумент не е от тип varchar(max) или nvarchar(max) , функцията съкращава връщаната стойност на 8000 байта. За да върне стойности, по-големи от 8000 байта, първият аргумент трябва да бъде изрично прехвърлен към съответния тип данни с голяма стойност.
Пример 1 – Основна употреба
Ето пример за това как работи:
SELECT REPLICATE('Dog', 3) AS Result;
Резултат:
+-----------+ | Result | |-----------| | DogDogDog | +-----------+
Пример 2 – Добавяне на интервал
Можем също да добавим интервал към предишния пример:
SELECT REPLICATE('Dog', 3) AS Result;
Резултат:
+--------------+ | Result | |--------------| | Dog Dog Dog | +--------------+
Въпреки че имайте предвид, че това ще добави интервал и в края на низа.
Можем да използваме TRIM()
функция за преодоляване на това:
SELECT TRIM(REPLICATE('Dog ', 3)) AS Result;
Резултат:
+-------------+ | Result | |-------------| | Dog Dog Dog | +-------------+
Може би следният пример ще направи това по-очевидно:
SELECT REPLICATE('Dog ', 3) + '.' AS 'Untrimmed', TRIM(REPLICATE('Dog ', 3)) + '.' AS 'Trimmed';
Резултат:
+---------------+--------------+ | Untrimmed | Trimmed | |---------------+--------------| | Dog Dog Dog . | Dog Dog Dog. | +---------------+--------------+
Пример 3 – Невалиден брой репликации
Ако вторият аргумент е отрицателна стойност, NULL
се връща:
SELECT REPLICATE('Dog', -3) AS Result;
Резултат:
+----------+ | Result | |----------| | NULL | +----------+
Пример 4 – Пример за база данни
Ето пример за репликиране на данни от база данни:
SELECT TOP(3) TRIM(REPLICATE(ArtistName + ' ', 3)) AS Result FROM Artists;
Резултат:
+----------------------------------------------------+ | Result | |----------------------------------------------------| | Iron Maiden Iron Maiden Iron Maiden | | AC/DC AC/DC AC/DC | | Allan Holdsworth Allan Holdsworth Allan Holdsworth | +----------------------------------------------------+