In SQL Server is de T-SQL REPLICATE()
functie herhaalt een tekenreekswaarde een bepaald aantal keren en retourneert het resultaat.
De functie accepteert twee argumenten; de invoerreeks en het aantal keren dat het moet worden herhaald.
Syntaxis
De syntaxis gaat als volgt:
REPLICATE ( string_expression ,integer_expression )
Waar string_expression is de invoerreeks. Dit kunnen karaktergegevens of binaire gegevens zijn.
En integer_expression is een geheel getal dat aangeeft hoe vaak de invoerreeks moet worden herhaald. Dit kan elk type geheel getal, inclusief bigint .
Merk op dat als het eerste argument niet van het type varchar(max) . is of nvarchar(max) , de functie kapt de geretourneerde waarde af op 8.000 bytes. Als u waarden wilt retourneren die groter zijn dan 8.000 bytes, moet het eerste argument expliciet worden gecast naar het juiste gegevenstype met grote waarde.
Voorbeeld 1 – Basisgebruik
Hier is een voorbeeld van hoe het werkt:
SELECT REPLICATE('Dog', 3) AS Result;
Resultaat:
+-----------+ | Result | |-----------| | DogDogDog | +-----------+
Voorbeeld 2 – Een spatie toevoegen
We kunnen ook een spatie toevoegen aan het vorige voorbeeld:
SELECT REPLICATE('Dog ', 3) AS Result;
Resultaat:
+--------------+ | Result | |--------------| | Dog Dog Dog | +--------------+
Houd er echter rekening mee dat dit ook een spatie aan het einde van de tekenreeks zal toevoegen.
We zouden de TRIM()
. kunnen gebruiken functie om dit te verhelpen:
SELECT TRIM(REPLICATE('Dog ', 3)) AS Result;
Resultaat:
+-------------+ | Result | |-------------| | Dog Dog Dog | +-------------+
Misschien maakt het volgende voorbeeld dit duidelijker:
SELECT REPLICATE('Dog ', 3) + '.' AS 'Untrimmed', TRIM(REPLICATE('Dog ', 3)) + '.' AS 'Trimmed';
Resultaat:
+---------------+--------------+ | Untrimmed | Trimmed | |---------------+--------------| | Dog Dog Dog . | Dog Dog Dog. | +---------------+--------------+
Voorbeeld 3 – Ongeldige replicatietelling
Als het tweede argument een negatieve waarde is, NULL
wordt geretourneerd:
SELECT REPLICATE('Dog', -3) AS Result;
Resultaat:
+----------+ | Result | |----------| | NULL | +----------+
Voorbeeld 4 – Een databasevoorbeeld
Hier is een voorbeeld van het repliceren van gegevens uit een database:
SELECT TOP(3) TRIM(REPLICATE(ArtistName + ' ', 3)) AS Result FROM Artists;
Resultaat:
+----------------------------------------------------+ | Result | |----------------------------------------------------| | Iron Maiden Iron Maiden Iron Maiden | | AC/DC AC/DC AC/DC | | Allan Holdsworth Allan Holdsworth Allan Holdsworth | +----------------------------------------------------+