REPLACE (Transact-SQL)
適用於:sql Server
Azure SQL 資料庫 Azure SQL 受控執行個體
Azure Synapse Analytics Analytics
Platform System (PDW)
MICROSOFT網
狀架構倉儲中的 SQL 分析端點Microsoft網狀架構
將指定字串值的所有相符項目取代成另一個字串值。
Syntax
REPLACE ( string_expression , string_pattern , string_replacement )
注意
若要檢視 SQL Server 2014 (12.x) 和更早版本的 Transact-SQL 語法,請參閱舊版文件。
引數
string_expression
這是要搜尋的字串運算式。 string_expression 可以是字元或二進位資料類型。
string_pattern
這是要尋找的子字串。 string_pattern 可以是字元或二進位資料類型。 string_pattern 不得超過頁面所能容納的最大位元組數目。 若 string_pattern 是空字串 (''),則不會變更傳回的 string_expression。
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 中。
範例
下列範例利用 cde
來取代 abcdefghicde
中的 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)
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應