sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan fungerer REPLICATE()-funktionen i SQL Server (T-SQL)

I SQL Server, T-SQL REPLICATE() funktion gentager en strengværdi et angivet antal gange og returnerer resultatet.

Funktionen accepterer to argumenter; indtastningsstrengen, og antallet af gange den skal gentages.

Syntaks

Syntaksen ser sådan ud:

REPLICATE ( string_expression ,integer_expression )

Hvor string_expression er inputstrengen. Dette kan enten være tegn eller binære data.

Og integer_expression er et heltal, der angiver, hvor mange gange inputstrengen skal gentages. Dette kan enhver heltalstype, inklusive bigint .

Bemærk, at hvis det første argument ikke er af typen varchar(max) eller nvarchar(max) , afkorter funktionen returværdien ved 8.000 bytes. For at returnere værdier, der er større end 8.000 bytes, skal det første argument eksplicit castes til den relevante datatype med stor værdi.

Eksempel 1 – Grundlæggende brug

Her er et eksempel på, hvordan det virker:

SELECT REPLICATE('Dog', 3) AS Result;

Resultat:

+-----------+
| Result    |
|-----------|
| DogDogDog |
+-----------+

Eksempel 2 – Tilføj et mellemrum

Vi kan også tilføje et mellemrum til det forrige eksempel:

SELECT REPLICATE('Dog ', 3) AS Result;

Resultat:

+--------------+
| Result       |
|--------------|
| Dog Dog Dog  |
+--------------+

Bemærk dog, at dette vil tilføje et mellemrum for enden af ​​strengen.

Vi kunne bruge TRIM() funktion til at overvinde dette:

SELECT TRIM(REPLICATE('Dog ', 3)) AS Result;

Resultat:

+-------------+
| Result      |
|-------------|
| Dog Dog Dog |
+-------------+

Måske vil følgende eksempel gøre dette mere tydeligt:

SELECT 
  REPLICATE('Dog ', 3) + '.' AS 'Untrimmed',
  TRIM(REPLICATE('Dog ', 3)) + '.' AS 'Trimmed';

Resultat:

+---------------+--------------+
| Untrimmed     | Trimmed      |
|---------------+--------------|
| Dog Dog Dog . | Dog Dog Dog. |
+---------------+--------------+

Eksempel 3 – Ugyldigt replikeringsantal

Hvis det andet argument er en negativ værdi, NULL returneres:

SELECT REPLICATE('Dog', -3) AS Result;

Resultat:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

Eksempel 4 – Et databaseeksempel

Her er et eksempel på replikering af data fra en database:

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

  1. Henter dato med tidszoneforskydning

  2. MICROSECOND() Eksempel – MySQL

  3. 4 måder at finde duplikerede rækker i MySQL

  4. Ydeevne overraskelser og antagelser:DATEDIFF