天天看點

sql之函數STUFF的應用

表結構

t_Item

FItemClassID 生産計劃号 品号 機台号
10001 1 a #1
10001 1 b #2
10001 1 a #3
10001 2 c #6
10001 2 c #10
10001 3 d #5
10001 4 e #8
10001 5 f #9
10001 5 f #4

要查詢得到這樣的資料

生産計劃号 品号 機台号
1 a #1#3
1 b #2
2 c #6#10
3 d #5
4 e #8
5 f #4#9

查詢語句如下:

{CSDN:CODE:

Select    生産計劃号,  品号,

'機台号'=STUFF((select distinct ' '+機台号 from t_Item a  

where FItemClassID=1001 

and 生産計劃号 =t_Item.生産計劃号 and 品号=t_Item.品号  FOR XML PATH(' ')), 1, 1, ' ')

from t_Item 

group by 生産計劃号,品号}

解釋下STUFF函數,

删除指定長度的字元,并在指定的起點處插入另一組字元。

STUFF ( character_expression , start , length ,character_expression )

示例:SELECT STUFF('abcde', 2, 3, '123')

GO  

結果:a123e