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函數