SQL SERVER中STUFF函式介紹及使用場景

2021-08-20 05:51:40 字數 1347 閱讀 8743

stuff ( character_expression , start , length ,character_expression ) 

引數character_expression 

乙個字元資料表示式。character_expression 可以是常量、變數,也可以是字元列或二進位制資料列。

start 

乙個整數值,指定刪除和插入的開始位置。如果 start 或 length 為負,則返回空字串。如果 start 比第乙個character_expression 長,則返回空字串。start 可以是 bigint 型別。

length 

乙個整數,指定要刪除的字元數。如果 length 比第乙個 character_expression 長,則最多刪除到最後乙個character_expression 中的最後乙個字元。length 可以是 bigint 型別。

返回型別

如果 character_expression 是受支援的字元資料型別,則返回字元資料。如果 character_expression 是乙個受支援的 binary 資料型別,則返回二進位制資料。

備註如果開始位置或長度值是負數,或者如果開始位置大於第乙個字串的長度,將返回空字串。如果要刪除的長度大於第乙個字串的長度,將刪除到第乙個字串中的第乙個字元。

如果結果值大於返回型別支援的最大值,則產生錯誤。

示例以下示例在第乙個字串 abcdef 中刪除從第 2 個位置(字元 b)開始的三個字元,然後在刪除的起始位置插入第二個字串,從而建立並返回乙個字串。

select stuff('abcdef', 2, 3, 'ijklmn'); 

go下面是結果集:

--------- 

aijklmnef

(1 row(s) affected)

sql server中常用c場景:

stuff(select ',' + fieldname  from tablename for xml path('')),1,1,'')

作用是將多行fieldname欄位的內容串聯起來,用逗號分隔。

例如表fieldname

-----------

aaabbb

ccc串聯之後就是字串: aaa,bbb,ccc

for xml path是sql server 2005以後版本支援的一種生成xml的方式。具體如何使用,請參考聯機叢書。

stuff函式的作用是去掉字串最前面的逗號分隔符。

用法:select *,stuff(select ',' + fieldname from table1 for xml path('')),1,1,'')  as  field from table2

參照**:

SQL Server中的STUFF函式的使用

sql server中的stuff函式的使用 stuff character expression start length character expression 引數character expression 乙個字元資料表示式。character expression 可以是常量 變數,也可以...

SQL Server中的STUFF函式的使用

stuff character expression start length character expression 作用 刪除指定長度的字元,並在指定的起點處插入另一組字元。乙個字元資料表示式。character expression 可以是常量 變數,也可以是字元列或二進位制資料列。乙個整數...

SQL Server中的STUFF函式的使用

stuff character expression start length character expression 作用 刪除指定長度的字元,並在指定的起點處插入另一組字元。乙個字元資料表示式。character expression 可以是常量 變數,也可以是字元列或二進位制資料列。乙個整數...