sql >> Databasteknik >  >> RDS >> Sqlserver

Hur REPLICATE()-funktionen fungerar i SQL Server (T-SQL)

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

  1. Hämta den aktuella tidszonen för servern i SQL Server (T-SQL)

  2. Vad är skillnaden mellan 'ÅÅÅÅ' och 'RRRR' i Oracle SQL

  3. Transponera en uppsättning rader som kolumner i SQL Server 2000

  4. Oracle Database Developer Choice Awards