REPLACE (Transact-SQL)

指定した文字列値をすべて別の文字列値に置き換えます。

トピック リンク アイコン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)