1. 程式人生 > >SQL 拼接多個字段的值&一個字段多條記錄的拼接

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

cells body score 完成 整數 數據類型 pad 參數 需要

如student表:

studentID

studentName

studentScore

01

Alice

90

02

Bill

95

03

Cindy

100

一、拼接多個字段的值 select studentID+‘-’+studentName+‘-‘+studentScore AS studentInfo from student 結果: 技術分享 二、一個字段多條記錄的拼接 select stuff((select ‘|‘+studentName from student for xml path (‘‘)),1,1,‘‘) 結果: 技術分享
解析:

①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 類型。

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

②for xml path:

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

來源:http://blog.csdn.net/rolamao/article/details/7745972

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