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;

取り出す文字数を0とした場合
空が返されます。
/* MySQL 指定回数に0を指定したサンプル */
SELECT STR,REPEAT(STR,0) FROM testdb.WORK;

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

取り出す文字数を0とした場合
空が返されます。
/* SQLServer 指定回数に0を指定したサンプル */
SELECT [STR],REPLICATE([STR],0) FROM [testdb].[dbo].[WORK];
