sql stuff函數的語法和作用


sql stuff函數用於刪除指定長度的字符,並可以在制定的起點處插入另一組字符。sql stuff函數中如果開始位置或長度值是負數,或者如果開始位置大於第一個字符串的長度,將返回空字符串。如果要刪除的長度大於第一個字符串的長度,將刪除到第一個字符串中的第一個字符。

 

一、作用

刪除指定長度的字符,並在指定的起點處插入另一組字符。

二、語法

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 數據類型,則返回二進制數據。

三、備注

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

2、如果結果值大於返回類型支持的最大值,則產生錯誤。

四、sql stuff函數

實例1

select STUFF('abcdefg',1,0,'1234')       --結果為'1234abcdefg'
select STUFF('abcdefg',1,1,'1234')       --結果為'1234bcdefg'
select STUFF('abcdefg',2,1,'1234')       --結果為'a1234cdefg'
select STUFF('abcdefg',2,2,'1234')       --結果為'a1234defg'

相當於從第幾個字符開始,替換掉幾個字符成后面的

實例2、SQL 將列轉成字符串並用逗號分隔

SELECT STUFF((SELECT ',' + FieldName FROM TableName FOR XML PATH('')),1,1,'') AS T

SQL實現代碼

select patientid,plusid=(STUFF((select ',' + plusid from test a where a.patientid=b.patientid for xml path('')),1,1,''))  
from test b group by patientid

 


免責聲明!

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



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