SQL Server中的STUFF函數的使用


適用於: 是SQL Server(從 2008 開始)是Azure SQL 數據庫是Azure SQL 數據倉庫是並行數據倉庫

STUFF 函數將字符串插入到另一個字符串中。 它從第一個字符串的開始位置刪除指定長度的字符;然后將第二個字符串插入到第一個字符串的開始位置。

主題鏈接圖標 TRANSACT-SQL 語法約定

語法

STUFF ( character_expression , start , length , replaceWith_expression )  

參數

character_expression
字符數據的表達式。 character_expression 可以是常量、變量,也可以是字符列或二進制數據列。

start
一個整數值,指定刪除和插入的開始位置。 如果 start 為負或為零,則返回空字符串。 如果 start 的長度大於第一個 character_expression,則返回空字符串。 start 的類型可以是 bigint。

length
一個整數,指定要刪除的字符數。 如果 length 為負,則返回空字符串。 如果 length 的長度大於第一個 character_expression,則最多可以刪除到最后一個 character_expression 中的最后一個字符。 如果 length 為零,則在字符串中第一個字符之前插入內容。 length 的類型可以是 bigint。

replaceWith_expression
字符數據的表達式。 character_expression 可以是常量、變量,也可以是字符列或二進制數據列。 此表達式從 start 開始替換 length 個字符的 character_expression。 如果 replaceWith_expression 為 NULL,則在不插入任何內容的情況下刪除字符。

返回類型

如果 character_expression 是支持的字符數據類型之一,則返回字符數據。 如果 character_expression 是支持的二進制數據類型之一,則返回二進制數據。

Remarks

如果開始位置或長度值是負數,或者開始位置大於第一個字符串的長度,則返回 Null 字符串。 如果開始位置為 0,則返回 Null 值。如果要刪除的長度大於第一個字符串的長度,則刪除到第一個字符串中的第一個字符。

如果結果值大於返回類型支持的最大值,則會引發錯誤。

補充字符(代理項對)

使用 SC 排序規則時,character_expression 和 replaceWith_expression 都可以包含代理項對。 length 參數將 character_expression 中的每個代理項計為一個字符。

示例

以下示例從第一個字符串 abcdef 的第 2 個位置 (b) 開始刪除三個字符,然后在刪除位置插入第二個字符串,從而創建並返回一個字符串。

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

下面是結果集:

---------   
aijklmnef   
  
(1 row(s) affected)  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM