天天看点

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