stuff和for xml path

作用

stuff(param1, startIndex, length, param2)
将param1中自startIndex(SQL中都是从1开始,而非0)起,删除length个字符,然后用param2替换删掉的字符。

select STUFF('abcdefg',1,0,'1234') --结果为'1234abcdefg'

for xml path 其实它就是将查询结果集以XML形式展现

select * from AA for xml path

<row><id>1</id><name>张三</name><descript>语文</descript></row><row><id>2</id><name>张三</name><descript>数学</descript></row><row><id>3</id><name>张三</name><descript>英语</descript></row><row><id>4</id><name>李四</name><descript>物理</descript></row><row><id>5</id><name>李四</name><descript>化学</descript></row><row><id>6</id><name>李四</name><descript>生物</descript></row>

select * from AA for xml path('');--去掉每一行的<row></row>

<id>1</id><name>张三</name><descript>语文</descript><id>2</id><name>张三</name><descript>数学</descript><id>3</id><name>张三</name><descript>英语</descript><id>4</id><name>李四</name><descript>物理</descript><id>5</id><name>李四</name><descript>化学</descript><id>6</id><name>李四</name><descript>生物</descript>

select ',' + descript from aa for xml path

<row>,语文</row><row>,数学</row><row>,英语</row><row>,物理</row><row>,化学</row><row>,生物</row>

select ',' + descript from aa for xml path('hh')

,语文,数学,英语,物理,化学,生物

select stuff((select ',' + descript from aa for xml path('')),1,1,'')

语文,数学,英语,物理,化学,生物(加stuff是为了去掉第一个逗号)

select name,STUFF((select ','+ descript from aa q where q.name=AA.name for xml path('')),1,1,'') from AA group by name
name (无列名)
李四 物理,化学,生物
张三 语文,数学,英语

转载于:https://www.cnblogs.com/jksun/p/10150391.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值