STUFF (Transact-SQL)

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

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

語法

STUFF ( character_expression , start , length ,character_expression )

引數

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

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

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

傳回類型

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

備註

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

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

範例

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

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

以下為結果集:

--------- 
aijklmnef 

(1 row(s) affected)