REPLACE (Transact-SQL)
指定した文字列値をすべて別の文字列値に置き換えます。
構文
REPLACE ( string_expression , string_pattern , string_replacement )
引数
string_expression
検索する文字列式を指定します。string_expression は文字またはバイナリ データ型で指定できます。string_pattern
検索するサブストリングを指定します。string_pattern は文字またはバイナリ データ型で指定できます。string_pattern には空の文字列 ('') を指定できません。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)