SQL Serverでは、T-SQL REPLICATE()
関数は文字列値を指定された回数繰り返し、結果を返します。
この関数は2つの引数を受け入れます。入力文字列、およびそれを繰り返す必要がある回数。
構文
構文は次のようになります:
REPLICATE ( string_expression ,integer_expression )
ここで、 string_expression 入力文字列です。これは、文字データまたはバイナリデータのいずれかです。
そしてinteger_expression 入力文字列を繰り返す回数を指定する整数です。これは、 bigintを含む任意の整数型にすることができます 。
最初の引数がvarchar(max)型でない場合は注意してください またはnvarchar(max) 、関数は8,000バイトで戻り値を切り捨てます。 8,000バイトを超える値を返すには、最初の引数を適切な大きな値のデータ型に明示的にキャストする必要があります。
例1-基本的な使用法
仕組みの例を次に示します。
SELECT REPLICATE('Dog', 3) AS Result;
結果:
+-----------+ | Result | |-----------| | DogDogDog | +-----------+
例2–スペースを追加する
前の例にスペースを追加することもできます:
SELECT REPLICATE('Dog', 3) AS Result;
結果:
+--------------+ | Result | |--------------| | Dog Dog Dog | +--------------+
ただし、これにより文字列の末尾にもスペースが追加されることに注意してください。
TRIM()
を使用できます これを克服するための機能:
SELECT TRIM(REPLICATE('Dog ', 3)) AS Result;
結果:
+-------------+ | Result | |-------------| | Dog Dog Dog | +-------------+
次の例で、これがより明確になるかもしれません:
SELECT REPLICATE('Dog ', 3) + '.' AS 'Untrimmed', TRIM(REPLICATE('Dog ', 3)) + '.' AS 'Trimmed';
結果:
+---------------+--------------+ | Untrimmed | Trimmed | |---------------+--------------| | Dog Dog Dog . | Dog Dog Dog. | +---------------+--------------+
例3–無効なレプリケーションカウント
2番目の引数が負の値の場合、NULL
返されます:
SELECT REPLICATE('Dog', -3) AS Result;
結果:
+----------+ | Result | |----------| | NULL | +----------+
例4–データベースの例
データベースからデータを複製する例を次に示します。
SELECT TOP(3) TRIM(REPLICATE(ArtistName + ' ', 3)) AS Result FROM Artists;
結果:
+----------------------------------------------------+ | Result | |----------------------------------------------------| | Iron Maiden Iron Maiden Iron Maiden | | AC/DC AC/DC AC/DC | | Allan Holdsworth Allan Holdsworth Allan Holdsworth | +----------------------------------------------------+