Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Funktionsweise der REPLICATE()-Funktion in SQL Server (T-SQL)

In SQL Server das T-SQL REPLICATE() Die Funktion wiederholt einen Zeichenfolgenwert eine bestimmte Anzahl von Malen und gibt das Ergebnis zurück.

Die Funktion akzeptiert zwei Argumente; die Eingabezeichenfolge und die Anzahl der Wiederholungen.

Syntax

Die Syntax lautet wie folgt:

REPLICATE ( string_expression ,integer_expression )

Wobei string_expression ist die Eingabezeichenfolge. Dies können entweder Zeichen- oder Binärdaten sein.

Und Ganzzahl_Ausdruck ist eine Ganzzahl, die angibt, wie oft die Eingabezeichenfolge wiederholt werden soll. Dies kann ein beliebiger ganzzahliger Typ sein, einschließlich bigint .

Beachten Sie, dass das erste Argument nicht vom Typ varchar(max) ist oder nvarchar(max) , schneidet die Funktion den Rückgabewert bei 8.000 Bytes ab. Um Werte größer als 8.000 Byte zurückzugeben, muss das erste Argument explizit in den entsprechenden Datentyp mit großen Werten umgewandelt werden.

Beispiel 1 – Grundlegende Verwendung

Hier ist ein Beispiel dafür, wie es funktioniert:

SELECT REPLICATE('Hund', 3) AS Ergebnis;

Ergebnis:

+-----------+| Ergebnis ||-----------|| HundHundHund |+-----------+

Beispiel 2 – Leerzeichen hinzufügen

Wir können dem vorherigen Beispiel auch ein Leerzeichen hinzufügen:

SELECT REPLICATE('Hund ', 3) AS Ergebnis;

Ergebnis:

+--------------+| Ergebnis ||--------------|| Hund Hund Hund |+---------------------+

Beachten Sie jedoch, dass dadurch auch ein Leerzeichen am Ende der Zeichenfolge hinzugefügt wird.

Wir könnten TRIM() verwenden Funktion, um dies zu überwinden:

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

Ergebnis:

+-------------+| Ergebnis ||-------------|| Hund Hund Hund |+---------------------+

Vielleicht macht das folgende Beispiel dies deutlicher:

SELECT REPLICATE('Hund ', 3) + '.' AS 'ungetrimmt', TRIM(REPLICATE('Hund ', 3)) + '.' AS 'Getrimmt';

Ergebnis:

+----------+--------------+| Unbeschnitten | Getrimmt ||---------------+--------------|| Hund Hund Hund. | Hund Hund Hund. |+----------+--------------+

Beispiel 3 – Ungültige Replikationszahl

Wenn das zweite Argument ein negativer Wert ist, NULL wird zurückgegeben:

SELECT REPLICATE('Hund', -3) AS Ergebnis;

Ergebnis:

+----------+| Ergebnis ||----------|| NULL |+----------+

Beispiel 4 – Ein Datenbankbeispiel

Hier ist ein Beispiel für die Replikation von Daten aus einer Datenbank:

SELECT TOP(3) TRIM(REPLICATE(ArtistName + ' ', 3)) AS ResultFROM Artists;

Ergebnis:

+---------------------------------------------- ------+| Ergebnis ||------------------------------------------------------------ -----|| Iron Maiden Iron Maiden Iron Maiden || Wechselstrom/Gleichstrom Wechselstrom/Gleichstrom Wechselstrom/Gleichstrom || Allan Holdsworth Allan Holdsworth Allan Holdsworth |+------------------------------------------ ----------+