共用方式為


STUFF (Transact-SQL)

STUFF 函數會將字串插入另一個字串。 它會在第一個字串的開始位置刪除指定長度的字元,然後將第二個字串插入第一個字串的開始位置。

主題連結圖示 Transact-SQL 語法慣例

語法

STUFF ( character_expression , start , length , replaceWith_expression )

引數

  • character_expression
    這是字元資料的運算式。 character_expression 可以是字元或二進位資料的常數、變數或資料行。

  • start
    這是一個開始刪除和插入之位置的整數值。 如果 start 或 length 是負數,則會傳回空字串。 如果 start 比第一個 character_expression 長,就會傳回 Null 字串。 start 可以是 bigint 類型。

  • length
    這是一個整數,指定要刪除的字元數。 如果 length 長度超出第一個 character_expression,刪除動作就會進行到最後一個 character_expression 的最後一個字元。 length 可以是 bigint 類型。

  • replaceWith_expression
    這是字元資料的運算式。 character_expression 可以是字元或二進位資料的常數、變數或資料行。 這個運算式會從 start 開始取代 character_expression 的 length 的字元。

傳回類型

如果 character_expression 是其中一個支援的字元資料類型,就會傳回字元資料。 如果 character_expression 是支援的二進位資料類型之一,就會傳回二進位資料。

備註

如果開始位置或長度是負的,或如果開始位置大於第一個字串的長度,則會傳回空的字串。 如果開始位置是 0,則會傳回 null 值。 如果刪除的長度大於第一個字串,則會刪除到剩下第一個字串中的第一個字元。

如果產生的值大於傳回類型所支援的最大值,便會引發錯誤。

補充字元 (Surrogate 字組)

使用 SC 定序時,character_expression 和 replaceWith_expression 都可以包含 Surrogate 字組。 長度參數會將 character_expression 中的每個 Surrogate 計算為單一字元。

範例

下列範例會傳回從第一個字串 (abcdef) 中,從位置 2 (b) 開始,刪除三個字元所建立的字元字串,且會在刪除點插入第二個字串。

SELECT STUFF('abcdef', 2, 3, 'ijklmn');
GO

以下為結果集:

--------- 
aijklmnef 

(1 row(s) affected)

請參閱

參考

資料類型 (Transact-SQL)

字串函數 (Transact-SQL)