Sql server中,將同一字段多條數據用字符拼接為一個字符串方式。
原數據查詢展示:
使用 STUFF 函數,將結果列拼接成一行。結果如下:
STUFF:
1、作用
stuff(param1, startIndex, length, param2)
將param1中自startIndex(SQL中都是從1開始,而非0)起,刪除length個字符,然后用param2替換刪掉的字符。
2、參數
- param1:一個字符數據表達式。param1可以是常量、變量,也可以是字符列或二進制數據列。
- startIndex:一個整數值,指定刪除和插入的開始位置。如果 startIndex或 length 為負,則返回空字符串。如果startIndex比param1長,則返回空字符串。startIndex可以是 bigint 類型。
- length:一個整數,指定要刪除的字符數。如果 length 比param1長,則最多刪除到param1 中的最后一個字符。length 可以是 bigint 類型。
- param2,返回類型。如果param1是受支持的字符數據類型,則返回字符數據。如果param1是一個受支持的 binary 數據類型,則返回二進制數據。
示例
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'