sqlserver/mysql 行转列 合并栏位

1. 学生表

2.成绩表

实现的结果:

sqlserver 语句:

select DISTINCT s.id,s.name,s.age,
stuff((select  ',' + r.cource +':'+ r.score from  score r
 where  s.id = r.sid for XML PATH('')), 1, 1, '')as last_result
 from student s 

-- group by s.id,s.name,s.age

注意 :包含特殊符号时,要考虑转译问题

select 
(    SELECT '|' + Title 
    FROM #Temp_Testxml a
    for xml path(''),root('MyString')
,type).value('/MyString[1]','varchar(max)')

参考文章:https://blog.youkuaiyun.com/ken_not/article/details/103871494

mysql 语句:

select s.id,s.name,s.age ,GROUP_CONCAT(r.cource ,':',r.score) as last_result
from student s
left join score r on  s.id = r.sid
 GROUP  BY  s.id,s.name,s.age

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值