sql server、Oracle、MySQL将多行数据逗号相隔一行展示

第一次接触sql server,这个需求所使用的语法和MySQL相同
需求描述:想把user_id为22328的所有goods一行查出来,以逗号分隔
在这里插入图片描述
解决:连了个其他表,把goods的名称查出来了,更加可视化,具体语法见此SQL

SELECT DISTINCT T1.user_id,title=REPLACE((SELECT T3.title AS [data()] FROM t_sold T2,
t_goods T3 WHERE T2.user_id=T1.user_id and T2.goods_id=T3.goods_id ORDER BY user_id 
FOR XML PATH('')),' ',',') FROM t_sold T1

遗留问题未解决:
上面的sql查询出用户名称和商品名称之后,无法像Oracle一样将这个查询结果作为一个表再去联其他表,报错是Order by相关的,我也不懂,希望有大佬可以知道下

关于Oracle,比较简单
select a.COURSE_ID,replace(wm_concat(b.ROLE_NAME),',',';') from T_ROLE_COURSE a,TD_ROLE b where a.ROLE_ID=b.ROLE_ID group by a.COURSE_ID having a.COURSE_ID=7

猜你喜欢

转载自blog.csdn.net/Funky_oaNiu/article/details/114357896
今日推荐