In SQL Server, T-SQL REPLICATE()
La funzione ripete un valore stringa un numero specificato di volte e restituisce il risultato.
La funzione accetta due argomenti; la stringa di input e il numero di volte che deve essere ripetuta.
Sintassi
La sintassi è questa:
REPLICATE ( string_expression ,integer_expression )
Dove espressione_stringa è la stringa di input. Possono essere dati caratteri o binari.
E espressione_intera è un numero intero che specifica quante volte ripetere la stringa di input. Questo può qualsiasi tipo di intero, incluso bigint .
Nota che se il primo argomento non è di tipo varchar(max) o nvarchar(max) , la funzione tronca il valore restituito a 8.000 byte. Per restituire valori maggiori di 8.000 byte, è necessario eseguire il cast del primo argomento in modo esplicito al tipo di dati di grande valore appropriato.
Esempio 1 – Utilizzo di base
Ecco un esempio di come funziona:
SELECT REPLICATE('Dog ', 3) AS Result;
Risultato:
+-----------+ | Result | |-----------| | DogDogDog | +-----------+
Esempio 2:aggiungere uno spazio
Possiamo anche aggiungere uno spazio all'esempio precedente:
SELECT REPLICATE('Dog ', 3) AS Result;
Risultato:
+--------------+ | Result | |--------------| | Dog Dog Dog | +--------------+
Anche se nota che questo aggiungerà uno spazio anche alla fine della stringa.
Potremmo usare il TRIM()
funzione per superare questo:
SELECT TRIM(REPLICATE('Dog ', 3)) AS Result;
Risultato:
+-------------+ | Result | |-------------| | Dog Dog Dog | +-------------+
Forse il seguente esempio lo renderà più evidente:
SELECT REPLICATE('Dog ', 3) + '.' AS 'Untrimmed', TRIM(REPLICATE('Dog ', 3)) + '.' AS 'Trimmed';
Risultato:
+---------------+--------------+ | Untrimmed | Trimmed | |---------------+--------------| | Dog Dog Dog . | Dog Dog Dog. | +---------------+--------------+
Esempio 3 – Conteggio repliche non valido
Se il secondo argomento è un valore negativo, NULL
viene restituito:
SELECT REPLICATE('Dog', -3) AS Result;
Risultato:
+----------+ | Result | |----------| | NULL | +----------+
Esempio 4:un esempio di database
Ecco un esempio di replica dei dati da un database:
SELECT TOP(3) TRIM(REPLICATE(ArtistName + ' ', 3)) AS Result FROM Artists;
Risultato:
+----------------------------------------------------+ | Result | |----------------------------------------------------| | Iron Maiden Iron Maiden Iron Maiden | | AC/DC AC/DC AC/DC | | Allan Holdsworth Allan Holdsworth Allan Holdsworth | +----------------------------------------------------+