Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как работи функцията REPLICATE() в SQL Server (T-SQL)

В 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 |
+----------------------------------------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изхвърлете всички таблици, чиито имена започват с определен низ

  2. T-SQL разделен низ

  3. Как да изпълня GROUP BY на колона с псевдоним в MS-SQL Server?

  4. ИЛИ не се поддържа с оператор CASE в SQL Server

  5. За Nvarchar(Max) получавам само 4000 знака в TSQL?