STUFF (Transact-SQL)

STUFF 関数は、文字列を別の文字列に挿入します。まず、1 番目の文字列の指定された開始位置から指定された長さの文字を削除し、次に、2 番目の文字列を 1 番目の文字列の指定された開始位置に挿入します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

STUFF ( character_expression , start , length ,character_expression )

引数

  • character_expression
    文字データのを指定します。character_expression には、文字やバイナリ データの定数、変数、または列を指定できます。

  • start
    削除と挿入を開始する位置を整数で指定します。start または length が負の値の場合は、NULL 文字列が返されます。start が最初の character_expression より長い場合は、NULL 文字列が返されます。start には bigint 型を指定できます。

  • length
    削除する文字数を整数で指定します。length が最初の character_expression より長い場合は、最後の character_expression の最後の文字までが削除されます。length には bigint 型を指定できます。

戻り値の型

character_expression が、サポートされている文字データ型の 1 つである場合は、文字データが返されます。character_expression が、サポートされている binary データ型の 1 つである場合は、バイナリ データが返されます。

説明

開始位置または長さが負の場合、または開始位置が 1 番目の文字列の長さを超える場合は NULL 文字列が返されます。削除する長さが 1 番目の文字列より長い場合は、1 番目の文字列の最初の文字まで削除されます。

結果値が、戻り値の型でサポートされている最大値より大きい場合は、エラーが発生します。

次の例では、最初の文字列 (abcdef) の位置 2 (b) から 3 文字を削除し、その位置に 2 番目に指定した文字列を挿入して生成される文字列を返します。

SELECT STUFF('abcdef', 2, 3, 'ijklmn');
GO

以下に結果セットを示します。

--------- 
aijklmnef 

(1 row(s) affected)