共用方式為


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 可以是字元或二進位資料類型。

傳回類型

如果其中一個輸入引數是 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 中。

範例

下列範例利用 xxx 來取代 abcdefghi 中的 cde 字串。

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)