REPLIKERA (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Microsoft Fabric

Upprepar ett strängvärde ett angivet antal gånger.

Transact-SQL syntaxkonventioner

Syntax

REPLICATE ( string_expression , integer_expression )   

Arguments

string_expression
Är ett uttryck för en teckensträng eller binär datatyp.

Anmärkning

Om string_expression är av typen binär kommer REPLICATE att utföra en implicit konvertering till varchar och kommer därför inte att bevara den binära indatan.

Anmärkning

Om string_expression indata inte är av typen varchar(max) eller nvarchar(max), förkortar REPLICATE returvärdet vid 8 000 byte. För att returnera värden större än 8 000 byte måste string_expression uttryckligen kastas till lämplig datatyp med stora värden.

integer_expression
Är ett uttryck av vilken heltalstyp som helst, inklusive bigint. Om integer_expression är negativ returneras NULL.

Returtyper

Returnerar samma typ som string_expression.

Examples

A. Använder REPLICATE

Följande exempel replikerar ett 0 tecken fyra gånger framför en produktionslinjekod i AdventureWorks2025-databasen.

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

Här är resultatet.

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. Att använda REPLICATE och DATALENGTH

Följande exempel lämnade padd-numren till en specificerad längd när de konverteras från en numerisk datatyp till tecken eller 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  

Här är resultatet.

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

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

C: Använder REPLICATE

Följande exempel replikerar ett 0 tecken fyra gånger framför ett ItemCode värde.

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

Här är de första raderna i resultatuppsättningen.

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

Se även

RYMDEN (Transact-SQL)
Datatyper (Transact-SQL)
Strängfunktioner (Transact-SQL)