【请教高手】PL/SQL环境 多条记录合并成一条记录

weixin_40097177 2017-09-04 03:32:03
PL/SQL环境 多条记录合并成一条记录
有些记录是这样的
名字 电话 身份证
张三 330000000001
张三 021-0000001 330000000001
张三 021-0000002
张三
李四 010-1111111 11000000000
李四 010-1111111
李四 11000000000

终于要的结果
张三 021-0000001、021-0000002 330000000001
李四 010-1111111 11000000000
...全文
112 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_40097177 2017-09-04
  • 打赏
  • 举报
回复
等下试下,现在没空试!
  • 打赏
  • 举报
回复
select 名字,wm_concat(DISTINCT 电话),max(身份证) from 表 group by 姓名
花开了叫我 2017-09-04
  • 打赏
  • 举报
回复
WITH t(名字,电话,身份证) AS (SELECT '张三','','330000000001' FROM dual UNION ALL SELECT '张三','021-0000001','330000000001' FROM dual union ALL SELECT '张三','021-0000002',''FROM dual UNION ALL SELECT '张三','','' FROM dual union ALL SELECT '李四','010-1111111','11000000000' FROM dual UNION ALL SELECT '李四','010-1111111','' FROM dual UNION ALL SELECT '李四','','11000000000' FROM dual), b(名字,电话,身份证) as(SELECT 名字,电话,max(身份证) FROM t GROUP BY 名字,电话) SELECT 名字,listagg(电话,'、')WITHIN GROUP(ORDER BY 名字) 电话,max(身份证) 身份证 FROM b GROUP BY 名字 名字 电话 身份证 ---- -------------------------------------------------------------------------------- ------------ 李四 010-1111111 11000000000 张三 021-0000001、021-0000002 330000000001
weixin_40097177 2017-09-04
  • 打赏
  • 举报
回复
论坛大牛呢?

17,089

社区成员

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

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