Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como a função REPLICATE() funciona no SQL Server (T-SQL)


No SQL Server, o T-SQL REPLICATE() A função repete um valor de string um número especificado de vezes e retorna o resultado.

A função aceita dois argumentos; a string de entrada e o número de vezes que ela deve ser repetida.


Sintaxe


A sintaxe fica assim:
REPLICATE ( string_expression ,integer_expression )

Onde string_expression é a cadeia de entrada. Isso pode ser caractere ou dados binários.

E integer_expression é um inteiro que especifica quantas vezes repetir a string de entrada. Isso pode ser qualquer tipo inteiro, incluindo bigint .

Observe que se o primeiro argumento não for do tipo varchar(max) ou nvarchar(max) , a função trunca o valor de retorno em 8.000 bytes. Para retornar valores maiores que 8.000 bytes, o primeiro argumento deve ser convertido explicitamente para o tipo de dados de valor grande apropriado.

Exemplo 1 – Uso básico


Veja um exemplo de como funciona:
SELECT REPLICATE('Dog', 3) AS Result;

Resultado:
+-----------+
| Result    |
|-----------|
| DogDogDog |
+-----------+

Exemplo 2 – Adicionar um espaço


Também podemos adicionar um espaço ao exemplo anterior:
SELECT REPLICATE('Dog ', 3) AS Result;

Resultado:
+--------------+
| Result       |
|--------------|
| Dog Dog Dog  |
+--------------+

Embora observe que isso também adicionará um espaço no final da string.

Poderíamos usar o TRIM() função para superar isso:
SELECT TRIM(REPLICATE('Dog ', 3)) AS Result;

Resultado:
+-------------+
| Result      |
|-------------|
| Dog Dog Dog |
+-------------+

Talvez o exemplo a seguir torne isso mais aparente:
SELECT 
  REPLICATE('Dog ', 3) + '.' AS 'Untrimmed',
  TRIM(REPLICATE('Dog ', 3)) + '.' AS 'Trimmed';

Resultado:
+---------------+--------------+
| Untrimmed     | Trimmed      |
|---------------+--------------|
| Dog Dog Dog . | Dog Dog Dog. |
+---------------+--------------+

Exemplo 3 – Contagem de replicação inválida


Se o segundo argumento for um valor negativo, NULL é retornado:
SELECT REPLICATE('Dog', -3) AS Result;

Resultado:
+----------+
| Result   |
|----------|
| NULL     |
+----------+

Exemplo 4 – Um exemplo de banco de dados


Aqui está um exemplo de replicação de dados de um banco de dados:
SELECT TOP(3) 
TRIM(REPLICATE(ArtistName + ' ', 3)) AS Result
FROM Artists;

Resultado:
+----------------------------------------------------+
| Result                                             |
|----------------------------------------------------|
| Iron Maiden Iron Maiden Iron Maiden                |
| AC/DC AC/DC AC/DC                                  |
| Allan Holdsworth Allan Holdsworth Allan Holdsworth |
+----------------------------------------------------+