Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-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)