I SQL Server, T-SQL REPLICATE()
funktionen upprepar ett strängvärde ett visst antal gånger och returnerar resultatet.
Funktionen accepterar två argument; inmatningssträngen och hur många gånger den ska upprepas.
Syntax
Syntaxen ser ut så här:
REPLICATE ( string_expression ,integer_expression )
Där string_expression är inmatningssträngen. Detta kan vara antingen tecken eller binär data.
Och integer_expression är ett heltal som anger hur många gånger inmatningssträngen ska upprepas. Detta kan alla heltalstyper, inklusive bigint .
Observera att om det första argumentet inte är av typen varchar(max) eller nvarchar(max) , trunkerar funktionen returvärdet vid 8 000 byte. För att returnera värden större än 8 000 byte måste det första argumentet uttryckligen castas till lämplig datatyp med stora värden.
Exempel 1 – Grundläggande användning
Här är ett exempel på hur det fungerar:
SELECT REPLICATE('Dog', 3) AS Result;
Resultat:
+-----------+ | Result | |-----------| | DogDogDog | +-----------+
Exempel 2 – Lägg till ett utrymme
Vi kan också lägga till ett blanksteg till föregående exempel:
SELECT REPLICATE('Dog ', 3) AS Result;
Resultat:
+--------------+ | Result | |--------------| | Dog Dog Dog | +--------------+
Observera dock att detta kommer att lägga till ett mellanslag i slutet av strängen också.
Vi skulle kunna använda TRIM()
funktion för att övervinna detta:
SELECT TRIM(REPLICATE('Dog ', 3)) AS Result;
Resultat:
+-------------+ | Result | |-------------| | Dog Dog Dog | +-------------+
Kanske kommer följande exempel att göra detta mer uppenbart:
SELECT REPLICATE('Dog ', 3) + '.' AS 'Untrimmed', TRIM(REPLICATE('Dog ', 3)) + '.' AS 'Trimmed';
Resultat:
+---------------+--------------+ | Untrimmed | Trimmed | |---------------+--------------| | Dog Dog Dog . | Dog Dog Dog. | +---------------+--------------+
Exempel 3 – Ogiltigt replikeringsantal
Om det andra argumentet är ett negativt värde, NULL
returneras:
SELECT REPLICATE('Dog', -3) AS Result;
Resultat:
+----------+ | Result | |----------| | NULL | +----------+
Exempel 4 – Ett databasexempel
Här är ett exempel på att replikera data från en databas:
SELECT TOP(3) TRIM(REPLICATE(ArtistName + ' ', 3)) AS Result FROM Artists;
Resultat:
+----------------------------------------------------+ | Result | |----------------------------------------------------| | Iron Maiden Iron Maiden Iron Maiden | | AC/DC AC/DC AC/DC | | Allan Holdsworth Allan Holdsworth Allan Holdsworth | +----------------------------------------------------+