Share via


REPLACE (Transact-SQL)

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

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

関連項目

参照

データ型 (Transact-SQL)

文字列関数 (Transact-SQL)