SQL道場 文字列関数 REPEAT/REPLICATE関数

SQLで文字列を指定された回数を繰り返すREPEAT/REPLICATE関数について記載しています。

対応データベース:SQL Server MySQL PostgreSQL DB2

REPEAT/REPLICATE関数の文法

SELECT REPEAT(文字列,文字数) FROM テーブル
SELECT REPLICATE(文字列,文字数) FROM テーブル
引数文字列文字列型
文字繰り返し回数整数型
返値文字列型 編集後の文字列が戻ります。

SQL Server

引数文字列文字列またはバイナリ データ型の式です。
文字繰り返し回数bigint を含む、整数型の式を指定します。 場合 であれば、任意 は負の場合、NULL が返されます。
返値同じ型を返します。

引数の文字列にセットされる型がbinary の場合、REPLICATE では、varchar への暗黙的変換が実行され、そのため、バイナリ入力は保持されません。

引数の文字列にセットされる型が varchar(max) か nvarchar(max) でない場合、REPLICATE では、8,000 バイトで戻り値が切り詰められます。 8,000 バイトの場合より大きい値を返す 引数の文字列の型に適切な大きな値のデータ型に明示的にキャストする必要があります。

REPEAT関数とREPLICATE関数は文字列を指定された回数繰り返します。MySQL、PostgreSQL、DB2のREPEAT関数とSQL ServerのREPLICATE関数は同じ機能を持ちします。

実行例

MySQLの実行例

/* MySQL 文字列を指定された回数繰り返すサンプル */
SELECT STR,REPEAT(STR,3) FROM testdb.WORK;
REPEAT/REPLICATE関数サンプル実行結果

取り出す文字数を0とした場合

空が返されます。

/* MySQL 指定回数に0を指定したサンプル */
SELECT STR,REPEAT(STR,0) FROM testdb.WORK;
REPEAT/REPLICATE関数サンプル実行結果

SQLServerの実行例

/* SQLServer 文字列を指定された回数繰り返すサンプル */
SELECT [STR],REPLICATE([STR],3) FROM [testdb].[dbo].[WORK];
REPEAT/REPLICATE関数サンプル実行結果

取り出す文字数を0とした場合

空が返されます。

/* SQLServer 指定回数に0を指定したサンプル */
SELECT [STR],REPLICATE([STR],0) FROM [testdb].[dbo].[WORK];
REPEAT/REPLICATE関数サンプル実行結果