sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo funciona la función REPLICATE() en SQL Server (T-SQL)

En SQL Server, el T-SQL REPLICATE() La función repite un valor de cadena un número específico de veces y devuelve el resultado.

La función acepta dos argumentos; la cadena de entrada y el número de veces que debe repetirse.

Sintaxis

La sintaxis es así:

REPLICATE ( string_expression ,integer_expression )

Donde expresión_cadena es la cadena de entrada. Esto puede ser un carácter o datos binarios.

Y expresión_entera es un número entero que especifica cuántas veces repetir la cadena de entrada. Puede ser de cualquier tipo entero, incluido bigint .

Tenga en cuenta que si el primer argumento no es del tipo varchar(max) o nvarchar(máximo) , la función trunca el valor devuelto en 8000 bytes. Para devolver valores superiores a 8000 bytes, el primer argumento debe convertirse explícitamente en el tipo de datos de valor grande apropiado.

Ejemplo 1:uso básico

He aquí un ejemplo de cómo funciona:

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

Resultado:

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

Ejemplo 2:agregar un espacio

También podemos añadir un espacio al ejemplo anterior:

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

Resultado:

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

Aunque tenga en cuenta que esto también agregará un espacio al final de la cadena.

Podríamos usar el TRIM() función para superar esto:

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

Resultado:

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

Tal vez el siguiente ejemplo lo haga más evidente:

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

Resultado:

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

Ejemplo 3:Recuento de replicaciones no válido

Si el segundo argumento es un valor negativo, NULL se devuelve:

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

Resultado:

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

Ejemplo 4:un ejemplo de base de datos

Este es un ejemplo de replicación de datos de una base de datos:

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