REPLICATE (Transact-SQL)REPLICATE (Transact-SQL)

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

文字列値を指定した回数だけ繰り返します。Repeats a string value a specified number of times.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

REPLICATE ( string_expression , integer_expression )   

注意

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

引数Arguments

string_expressionstring_expression
文字列またはバイナリ データ型の式です。Is an expression of a character string or binary data type.

注意

string_expression の型が binary の場合、REPLICATE では、varchar への暗黙的変換が実行され、そのため、バイナリ入力は保持されません。If string_expression is of type binary, REPLICATE will perform an implicit conversion to varchar, and therefore will not preserve the binary input.

注意

string_expression 入力の型が varchar(max)nvarchar(max) の場合、REPLICATE では、8,000 バイトで戻り値が切り詰められます。If string_expression input is of type varchar(max) or nvarchar(max), REPLICATE truncates the return value at 8,000 bytes. 8,000 バイトの場合より大きい値を返す string_expression 適切な大きな値のデータ型に明示的にキャストする必要があります。To return values greater than 8,000 bytes, string_expression must be explicitly cast to the appropriate large-value data type.

integer_expressioninteger_expression
bigint を含む、整数型の式を指定します。Is an expression of any integer type, including bigint. 場合 であれば、任意 は負の場合、NULL が返されます。If integer_expression is negative, NULL is returned.

戻り値の型Return Types

同じ型を返します string_expression です。Returns the same type as string_expression.

Examples

A.A. REPLICATE を使用するUsing REPLICATE

次の例では、AdventureWorks2012AdventureWorks2012 データベースの取り扱い品目コードの前に 0 という文字を 4 回繰り返します。The following example replicates a 0 character four times in front of a production line code in the AdventureWorks2012AdventureWorks2012 database.

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

結果セットは次のようになります。Here is the result set.

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.B. REPLICATE と DATALENGTH を使用するUsing REPLICATE and DATALENGTH

次の例では、数値データ型から文字または Unicode に数値を変換するときに、その数値の左側を埋めて指定された長さにします。The following example left pads numbers to a specified length as they are converted from a numeric data type to character or 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  

結果セットは次のようになります。Here is the result set.

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

例: Azure Synapse AnalyticsAzure Synapse AnalyticsParallel Data WarehouseParallel Data WarehouseExamples: Azure Synapse AnalyticsAzure Synapse Analytics and Parallel Data WarehouseParallel Data Warehouse

C: REPLICATE を使用するC: Using REPLICATE

次の例では、ItemCode 値の前に 0 という文字を 4 回繰り返します。The following example replicates a 0 character four times in front of an ItemCode value.

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

ここでは結果セット内の最初の行を示します。Here are the first rows in the result set.

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

参照See Also

SPACE (Transact-SQL)SPACE (Transact-SQL)
データ型 (Transact-SQL) Data Types (Transact-SQL)
文字列関数 (Transact-SQL)String Functions (Transact-SQL)