REPLACE (Transact-SQL)
Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric の SQL 分析エンドポイント Microsoft Fabric のウェアハウス
指定した文字列値をすべて別の文字列値に置き換えます。
構文
REPLACE ( string_expression , string_pattern , string_replacement )
引数
string_expression
検索する文字列式を指定します。 string_expression 文字またはバイナリ データ型であることができます。
string_pattern
検索するサブストリングです。 string_pattern 文字またはバイナリ データ型であることができます。 string_pattern は、1 ページに収まる最大バイト数を超えないようにしてください。 string_pattern が空の文字列 ('') の場合、string_expression は変更されずに返されます。
string_replacement
置き換え後の文字列です。 string_replacement 文字またはバイナリ データ型であることができます。
戻り値の型
返します nvarchar が、入力引数のいずれかの場合、 nvarchar データが入力のそれ以外の場合を返します。 を置き換える varchar です。
いずれかの引数が NULL の場合は、NULL を返します。
場合 string_expression の種類はありません varchar (max) または nvarchar (max)、 置換 は 8,000 バイトで戻り値を切り捨てます。 8,000 バイトを超える値を返すには、大きな値を格納できるデータ型に string_expression を明示的にキャストする必要があります。
解説
REPLACE は、入力の照合順序に基づいて比較を行います。 特定の照合順序で比較を行うには、COLLATE を使用して、入力に明示的な照合順序を適用します。
0x0000 (char(0) ) の Windows 照合順序で未定義の文字は、REPLACE に含めることができません。
例
次の例では、abcdefghicde
にある文字列 cde
を xxx
に置換します。
SELECT REPLACE('abcdefghicde','cde','xxx');
GO
結果セットは次のとおりです。
------------
abxxxfghixxx
(1 row(s) affected)
次の例では、COLLATE
関数を使用します。
SELECT REPLACE('This is a Test' COLLATE Latin1_General_BIN,
'Test', 'desk' );
GO
結果セットは次のとおりです。
------------
This is a desk
(1 row(s) affected)
次の例では、REPLACE
関数を使用して、文に含まれるスペースの数を計算します。 まず、LEN
関数を使用して文の長さを計算します。 次に、REPLACE
を使用して ' ' 文字を '' に置き換えます。 この処理が完了すると、文の長さが再計算されます。 結果として得られる違いは、文の空白文字の数です。
DECLARE @STR NVARCHAR(100), @LEN1 INT, @LEN2 INT;
SET @STR = N'This is a sentence with spaces in it.';
SET @LEN1 = LEN(@STR);
SET @STR = REPLACE(@STR, N' ', N'');
SET @LEN2 = LEN(@STR);
SELECT N'Number of spaces in the string: ' + CONVERT(NVARCHAR(20), @LEN1 - @LEN2);
GO
結果セットは次のとおりです。
------------
Number of spaces in the sentence: 7
(1 row(s) affected)
参照
CONCAT (Transact-SQL)
CONCAT_WS (Transact-SQL)
FORMATMESSAGE (Transact-SQL)
QUOTENAME (Transact-SQL)
REVERSE (Transact-SQL)
STRING_AGG (Transact-SQL)
STRING_ESCAPE (Transact-SQL)
STUFF (Transact-SQL)
TRANSLATE (Transact-SQL)
データ型 (Transact-SQL)
文字列関数 (Transact-SQL)