REPLACE (Transact-SQL)
指定した文字列値をすべて別の文字列値に置き換えます。
構文
REPLACE ( string_expression , string_pattern , string_replacement )
引数
string_expression
検索する文字列式を指定します。 string_expression は文字またはバイナリ データ型で指定できます。string_pattern
検索するサブストリングを指定します。 string_pattern は文字またはバイナリ データ型で指定できます。 string_pattern には空の文字列 ("") は指定できません。また、1 ページに収まる最大バイト数を超えないようにしてください。string_replacement
置き換え後の文字列を指定します。 string_replacement は文字またはバイナリ データ型で指定できます。
戻り値の型
入力引数の 1 つが nvarchar データ型の場合、nvarchar を返します。それ以外の場合、REPLACE は varchar を返します。
いずれかの引数が NULL の場合は、NULL を返します。
string_expression の型が varchar(max) または nvarchar(max) でない場合、REPLACE の戻り値は 8,000 バイトで切り捨てられます。 8,000 バイトを超える値を返すには、大きな値を格納できるデータ型に string_expression を明示的にキャストする必要があります。
説明
REPLACE は、入力の照合順序に基づいて比較を行います。 特定の照合順序で比較を行うには、COLLATE を使用して、入力に明示的な照合順序を適用します。
0x0000 (char(0)) は Windows 照合順序で未定義の文字であり、REPLACE に含めることはできません。
使用例
次の例では、abcdefghi にある文字列 cde を xxx に置換します。
SELECT REPLACE('abcdefghicde','cde','xxx');
GO
以下に結果セットを示します。
------------
abxxxfghixxx
(1 row(s) affected)
次の例では、COLLATE 関数を使用します。
SELECT REPLACE('Das ist ein Test' COLLATE Latin1_General_BIN,
'Test', 'desk' );
GO
以下に結果セットを示します。
------------
Das ist ein desk
(1 row(s) affected)