sql >> Database >  >> RDS >> Sqlserver

Hoe de REPLICATE()-functie werkt in SQL Server (T-SQL)

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

  1. Hoe gebruik je scriptvariabelen in psql?

  2. TODATETIMEOFFSET() Voorbeelden in SQL Server

  3. Genereer SQL Create-scripts voor bestaande tabellen met Query

  4. De top 5 functies die uw SQL Server Database Performance Monitoring Platform moet bieden