如何在Oracle数据库用SQL语句实现以下转换

lixin41658133 2017-08-10 12:44:21
数据形式如下:
地区 品牌
美国 沃尔玛
美国 福特
美国 英特尔
美国 苹果
中国 华为
中国 创维
韩国 三星
韩国 现代
韩国 LG

其中地区数量有很多,这里只是弄了3个,每个地区的品牌数量不一,最终想显示成如下样式:
地区 品牌
美国 沃尔玛/福特/英特尔/苹果
中国 华为/创维
韩国 三星/现代/LG

有什么方法可以实现,求大神指点,谢谢!
...全文
256 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
花开了叫我 2017-08-10
  • 打赏
  • 举报
回复
WITH t(地区,品牌) AS( SELECT '美国','沃尔玛' FROM dual UNION ALL SELECT '美国','福特' FROM dual UNION ALL SELECT '美国','英特尔' from dual UNION ALL SELECT '美国','苹果' from dual UNION ALL SELECT '中国','华为' from dual UNION ALL SELECT '中国','创维' from dual UNION ALL SELECT '韩国','三星' from dual UNION ALL SELECT '韩国','现代' from dual UNION ALL SELECT '韩国','LG' from dual ) SELECT 地区,listagg(品牌,'/')WITHIN GROUP (ORDER BY ROWNUM) FROM t GROUP BY 地区;
金杯独酒 2017-08-10
  • 打赏
  • 举报
回复

-- 一句话!    ,用到wm_concat函数,将,转成/  ,把分给我吧
SELECT g.国家,replace(wm_concat(g.品牌),',','/') FROM table_a g GROUP  BY g.国家

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧