Bagikan melalui


REPLIKASI (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Mengulangi nilai untai (karakter) dalam jumlah tertentu.

Konvensi sintaks transact-SQL

Sintaksis

REPLICATE ( string_expression , integer_expression )   

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi 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 oleh karena itu tidak akan mempertahankan input biner.

Catatan

Jika input string_expression bukan jenis 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 Kembalian

Mengembalikan jenis yang sama dengan string_expression.

Contoh

J. Menggunakan REPLIKASI

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

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

Berikut adalah hasil yang ditetapkan.

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 tertentu 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 REPLIKASI

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 (Transact-SQL)
Tipe Data (Transact-SQL)
Fungsi String (Transact-SQL)