Delen via


REPLICEREN (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Herhaalt een stringwaarde een bepaald aantal keren.

Transact-SQL syntaxis-conventies

Syntaxis

REPLICATE ( string_expression , integer_expression )   

Arguments

string_expression
Is een uitdrukking van een tekenstring of binair datatype.

Opmerking

Als string_expression van het type binair is, zal REPLICATE een impliciete conversie naar varchar uitvoeren en zal daarom de binaire invoer niet behouden.

Opmerking

Als string_expression invoer niet van het type varchar(max) of nvarchar(max) is, kortert REPLICATE de terugkeerwaarde af op 8.000 bytes. Om waarden groter dan 8.000 bytes terug te geven, moet string_expression expliciet worden gecast naar het juiste datatype met grote waardes.

integer_expression
Is een uitdrukking van elk geheel getaltype, inclusief bigint. Als integer_expression negatief is, wordt NULL teruggegeven.

Retourtypen

Geeft hetzelfde type terug als string_expression.

Voorbeelden

Eén. REPLICATE gebruiken

Het volgende voorbeeld repliceert vier keer een 0 teken voor een productielijncode in de AdventureWorks2025-database.

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

Hier is het resultatenoverzicht.

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. Met REPLICATE en DATALENGTH

Het volgende voorbeeld liet nummers op een bepaalde lengte oppassen terwijl ze worden omgezet van een numeriek datatype naar teken of 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  

Hier is het resultatenoverzicht.

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

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

C: REPLICATE gebruiken

Het volgende voorbeeld repliceert een 0 karakter vier keer voor een ItemCode waarde.

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

Hier zijn de eerste rijen in de resultaatset.

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

Zie ook

SPATIE (Transact-SQL)
gegevenstypen (Transact-SQL)
tekenreeksfuncties (Transact-SQL)