SQL Server 的 REPLICATE 是一个字符串函数,用于将现有字符串重复指定的次数。此 replicate 函数接受字符字符串或二进制数据,并返回与指定表达式相同的类型。
REPLICATE 函数的语法如下所示。
SELECT REPLICATE (String_Expression, int_Expression) FROM [Source]
- String_Expression:请指定有效的字符串。Replicate 函数将重复此 String_Expression 中的字符串。它可以是字符字符串或二进制数据。
- int_Expression:您想重复 String_Expression 的字符数是多少?
SQL Server REPLICATE 函数示例
REPLICATE 函数将原始字符串重复指定的次数。以下查询将展示使用 Replicate 函数的多种方法。
DECLARE @String VARCHAR(50)
SET @String = 'Learn SQL Server'
SELECT REPLICATE (@String, 3) AS 'SQLServer Replicate'
SELECT REPLICATE ((@String + ', '), 3) AS 'SQLServer Replicate'
--Replicating String Directly
SELECT REPLICATE ('Learn T-SQL Server ', 4) AS 'Replicate Result'

在这里,我们使用 REPLICATE 函数将 @String 数据重复三次。
SELECT REPLICATE (@String, 3) AS 'SQLServer Replicate'
接下来,我们使用 算术运算符 在 SQL Server 中重复的项目之间添加额外的空格。
SELECT REPLICATE ((@String + ', '), 3) AS 'SQLServer Replicate'
下一行,我们在 REPLICATE 函数中直接使用了字符串数据,下面的语句会将“Learn T-SQL Server”重复 4 次
SELECT REPLICATE ('Learn T-SQL Server ', 4) AS 'Replicate Result'
REPLICATE 函数示例 2
在此 字符串函数 示例中,我们使用 Replicate 函数为产品分配序列号。为此,我们将使用下面显示的数据

代码
SELECT [EnglishProductName]
,[Color]
,LEFT([EnglishProductName], 2) +
REPLICATE('0', 3) +
RIGHT([EnglishProductName], 2) AS 'Product Serial'
,[StandardCost]
,[ListPrice]
,[DealerPrice]
,[SalesAmount]
,[TaxAmt]
FROM [Product Sales]

在下面的语句中,我们使用 LEFT 函数 从 [EnglishProductName] 列数据中返回最左边的两个字符。
LEFT([EnglishProductName], 2)
下面的语句会将 0 重复 3 次。
REPLICATE('0', 3)
在下面的语句中,我们使用 RIGHT 函数 从 [EnglishProductName] 列数据中返回最右边的两个字符。
RIGHT([EnglishProductName], 2)
最后,我们使用 算术运算符 来连接上面三个语句的结果。这意味着 English Product Name 的前两个字符 + 三个零 + Product Name 的最后两个字符。