Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Powtarza wartość ciągu znaków określoną liczbę razy.
Transact-SQL konwencje składni
Składnia
REPLICATE ( string_expression , integer_expression )
Arguments
string_expression
Jest wyrażeniem ciągu znaków lub binarnego typu danych.
Uwaga / Notatka
Jeśli string_expression jest binarnym typu, REPLICATE wykona niejawną konwersję na varchar, a zatem nie zachowa binarnego wejścia.
Uwaga / Notatka
Jeśli string_expression wejście nie jest typu varchar(max) ani nvarchar(max), REPLICATE skraca wartość zwracaną do 8 000 bajtów. Aby zwrócić wartości większe niż 8 000 bajtów, string_expression musi być wyraźnie przypisane do odpowiedniego typu danych o dużej wartości.
integer_expression
Jest wyrażeniem dowolnego typu całkowitego, w tym bigint. Jeśli integer_expression jest ujemny, zwraca się NULL.
Typy zwracane
Zwraca ten sam typ co string_expression.
Przykłady
A. Używając REPLICATE
Poniższy przykład replikuje 0 znak cztery razy przed kodem linii produkcyjnej w bazie AdventureWorks2025.
SELECT [Name]
, REPLICATE('0', 4) + [ProductLine] AS 'Line Code'
FROM [Production].[Product]
WHERE [ProductLine] = 'T'
ORDER BY [Name];
GO
Oto zestaw wyników.
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. Używając REPLICATE i DATALENGTH
Poniższy przykład w lewej stronie przypisuje numery do określonej długości, gdy są one konwertowane z numerycznego typu danych na znak lub 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
Oto zestaw wyników.
Varchar Column Char Column
-------------------- ------------
002 2
037 37
597 597
(3 row(s) affected)
Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)
C: Używanie REPLICATE
Poniższy przykład replikuje 0 znak cztery razy przed wartością ItemCode .
-- Uses AdventureWorks
SELECT EnglishProductName AS Name,
ProductAlternateKey AS ItemCode,
REPLICATE('0', 4) + ProductAlternateKey AS FullItemCode
FROM dbo.DimProduct
ORDER BY Name;
Oto pierwsze wiersze w zbiorze wyników.
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
Zobacz też
PRZESTRZEŃ (Transact-SQL)
typy danych (Transact-SQL)
funkcje ciągów (Transact-SQL)