SQL 拼接多個字段的值&一個字段多條記錄的拼接


如student表:

studentID

studentName

studentScore

01

Alice

90

02

Bill

95

03

Cindy

100


一、拼接多個字段的值
select studentID+‘-’+studentName+'-'+studentScore AS studentInfo from student

結果:
SQL 拼接多個字段的值一個字段多條記錄的拼接 - 小智 - 微笑着過好每一天
 
二、一個字段多條記錄的拼接
select stuff((select '|'+studentName from student for xml path ('')),1,1,'')

結果:
SQL 拼接多個字段的值一個字段多條記錄的拼接 - 小智 - 微笑着過好每一天
 
解析:

①stuff:
1、作用
stuff(param1, startIndex, length, param2)
將param1中自startIndex(SQL中都是從1開始,而非0)起,刪除length個字符,然後用param2替換刪掉的字符。

2、參數
param1
一個字符數據表達式。param1可以是常量、變量,也可以是字符列或二進制數據列。
startIndex
一個整數值,指定刪除和插入的開始位置。如果 startIndex或 length 爲負,則返回空字符串。如果startIndexparam1長,則返回空字符串。startIndex可以是 bigint 類型。
length 
一個整數,指定要刪除的字符數。如果 length 比param1長,則最多刪除到param1 中的最後一個字符。length 可以是 bigint 類型。

3、返回類型
如果param1是受支持的字符數據類型,則返回字符數據。如果param1是一個受支持的 binary 數據類型,則返回二進制數據。
4、備註
如果結果值大於返回類型支持的最大值,則產生錯誤。


②for xml path:

    for xml path有的人可能知道有的人可能不知道,其實它就是將查詢結果集以XML形式展現,有了它我們可以簡化我們的查詢語句實現一些以前可能需要藉助函數活存儲過程來完成的工作。


參考:http://blog.csdn.net/rolamao/article/details/7745972
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章