REPLIKASI (SQL bertransaksi)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics Analytics yesPlatform System (PDW)

Mengulangi nilai untai (karakter) dalam jumlah tertentu.

Topic link iconKonvensi Sintaksis T-SQL

Sintaks

REPLICATE ( string_expression , integer_expression )   

Catatan

Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

string_expression
Adalah ekspresi string karakter atau jenis data biner.

Catatan

Jika string_expression berjenis biner, REPLICATE akan melakukan konversi implisit ke varchar, dan karenanya tidak akan mempertahankan input biner.

Catatan

Jika input string_expression berjenis varchar(max) atau nvarchar(max), REPLICATE memotong nilai yang dikembalikan pada 8.000 byte. Untuk mengembalikan nilai yang lebih besar dari 8.000 byte, string_expression harus secara eksplisit ditransmisikan ke jenis data bernilai besar yang sesuai.

integer_expression
Adalah ekspresi dari jenis bilangan bulat apa pun, termasuk bigint. Jika integer_expression negatif, NULL dikembalikan.

Jenis Pengembalian

Mengembalikan jenis yang sama dengan string_expression.

Contoh

A. Menggunakan REPLIKASI

Contoh berikut mereplikasi 0 karakter empat kali di depan kode lini produksi dalam database AdventureWorks2012.

SELECT [Name]  
, REPLICATE('0', 4) + [ProductLine] AS 'Line Code'  
FROM [Production].[Product]  
WHERE [ProductLine] = 'T'  
ORDER BY [Name];  
GO  

Berikut adalah tataan hasil.

Name                                               Line Code  
-------------------------------------------------- ---------  
HL Touring Frame - Blue, 46                        0000T   
HL Touring Frame - Blue, 50                        0000T   
HL Touring Frame - Blue, 54                        0000T   
HL Touring Frame - Blue, 60                        0000T   
HL Touring Frame - Yellow, 46                      0000T   
HL Touring Frame - Yellow, 50                      0000T  
...  

B. Menggunakan REPLICATE dan DATALENGTH

Contoh berikut meninggalkan angka bantalan ke panjang yang ditentukan saat dikonversi dari jenis data numerik ke karakter atau Unicode.

IF EXISTS(SELECT name FROM sys.tables  
      WHERE name = 't1')  
   DROP TABLE t1;  
GO  
CREATE TABLE t1   
(  
 c1 varchar(3),  
 c2 char(3)  
);  
GO  
INSERT INTO t1 VALUES ('2', '2'), ('37', '37'),('597', '597');  
GO  
SELECT REPLICATE('0', 3 - DATALENGTH(c1)) + c1 AS 'Varchar Column',  
       REPLICATE('0', 3 - DATALENGTH(c2)) + c2 AS 'Char Column'  
FROM t1;  
GO  

Berikut adalah hasil yang ditetapkan.

  
Varchar Column        Char Column  
--------------------  ------------  
002                   2    
037                   37   
597                   597  
  
(3 row(s) affected)  
  

Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)

C: Menggunakan REPLICATE

Contoh berikut mereplikasi 0 karakter empat kali di depan ItemCode nilai.

-- Uses AdventureWorks  
  
SELECT EnglishProductName AS Name,  
   ProductAlternateKey AS ItemCode,  
   REPLICATE('0', 4) + ProductAlternateKey AS FullItemCode  
FROM dbo.DimProduct  
ORDER BY Name;  

Berikut adalah baris pertama dalam tataan hasil.

Name                     ItemCode       FullItemCode
------------------------ -------------- ---------------
Adjustable Race          AR-5381        0000AR-5381
All-Purpose Bike Stand   ST-1401        0000ST-1401
AWC Logo Cap             CA-1098        0000CA-1098
AWC Logo Cap             CA-1098        0000CA-1098
AWC Logo Cap             CA-1098        0000CA-1098
BB Ball Bearing          BE-2349        0000BE-2349

Lihat juga

SPACE (SQL Bertransaksi)
Tipe Data (Transact-SQL)
Fungsi String (SQL Transact)