关于for xml path的使用

有业务场景: 学生表s_student, 兴趣表s_hobby 表,其中 s_student 一对多s_hobby . 需要我们在一张以s_hobby为主表的列表中,其中一个字段为该学生的所有兴趣. 下面上sql. 其中stuff 的作用是去掉前面的",".当然也可以在java代码中处理. cast的作用的转成String完成封装到对象, 因为for xml path出来的是blob格式.不转换会封装失败!

select name ,
cast(stuff((SELECT ',' + hobby
              FROM s_hobby
              WHERE student_id = st.id
              FOR XML PATH ('')), 1, 1, '') AS NVARCHAR(1000)) hobbies
from s_student st
发布了53 篇原创文章 · 获赞 5 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_40085888/article/details/94441163