SQL Server Replicate()函数

在本教程中,将学习如何使用SQL Server REPLICATE()函数复制指定次数的字符串。

SQL Server REPLICATE()函数简介

REPLICATE()函数按指定的次数重复字符串。它的语法很简单,如下所示:

REPLICATE(input_string, count);

在这个语法中:

  • input_string是一个表达式,其值为字符或二进制类型的值。
  • count是重复input_string的次数。

SQL Server REPLICATE()函数示例

下面来看一些使用REPLICATE()函数的例子。

1. 使用REPLICATE()函数重复文字字符串

此示例使用REPLICATE()函数重复字符z三次:

SELECT
    REPLICATE('z',3) result;

执行上面查询语句,得到以下结果:

result
------
zzz

(1 row affected)

2. 使用REPLICATE()函数创建具有前导零数据的列
首先,在production模式中创建一个名为spare_parts的新表:

CREATE TABLE production.spare_parts (
    part_id INT IDENTITY PRIMARY KEY,
    part_no VARCHAR(10) NOT NULL UNIQUE,
    description VARCHAR(50) NOT NULL
);

假设part_no必须总是有10个字符。 如果备件少于10个字符,则应用程序需要填充前导零,以使长度始终为10个字符。

其次,在production.spare_parts表中插入一些值:

INSERT INTO 
    production.spare_parts(part_no, description)
VALUES
    ('FRMTUBE','Frame Tube'),
    ('CHNCO','Chain Cover'),
    ('CRKS','Cranks');

第三,从production.spare_parts表中选择数据,使用REPLICATE()函数左侧填充零:

SELECT 
    part_id,
    CONCAT(
        REPLICATE('0', 10 - LEN(part_no)), 
        part_no
    ) part_no,
    description
FROM 
    production.spare_parts;

执行上面查询语句,得到以下结果:

得到结果

在这个例子中:

首先,使用LEN()函数计算要填充零的数量:

10 - LEN(part_no)

其次,使用REPLICATE()函数复制要填充所需要的零:

REPLICATE('0', 10 - LEN(part_no)

第三,使用CONCAT()函数将零填充到part_no

CONCAT(
    REPLICATE('0', 10 - LEN(part_no)), 
    part_no
) part_no

在本教程中,学习了如何使用SQL Server REPLICATE()函数复制指定次数的字符串。


上一篇: SQL Server字符串函数 下一篇: SQL Server Window函数