Oracle如何取出某一列的所有不重复值作为单独一列

字段1字段2a1a1a2b1b2b3效果a1,2b1,2,3类似纵表变横表,求高手指导,想了很久没想出来... 字段1 字段2
a 1
a 1
a 2
b 1
b 2
b 3
效果
a 1,2
b 1,2,3
类似纵表变横表,求高手指导,想了很久没想出来
展开
 我来答
清茶稀饭
2014-12-03 · 知道合伙人软件行家
清茶稀饭
知道合伙人软件行家
采纳数:520 获赞数:3575
2009年,大学计算机信息科学与技术专业毕业, java行业从5年经验,各大数据库都精通,也会其他软件技术。

向TA提问 私信TA
展开全部
这个是oracle的行变列转换 可以使用一个函数 sys_connect_by_path(column,<分隔符>)


SELECT c.gysid, listagg(c.wzlbid,',') within GROUP (ORDER BY c.wzlbid) FROM wzgl_gys_zrwmfw c GROUP BY gysid
这几个方法都可以实现行转列,达到想要的效果。
但当数据量比较大时却报ORA-01489:字符串连接的结果过长。
此时个人的解决办法,只能转到程序代码中去处理。
希望,以此为鉴!
太平岁年丰9
2014-12-03 · TA获得超过1231个赞
知道小有建树答主
回答量:1017
采纳率:100%
帮助的人:1089万
展开全部
用wmsys.wm_concat这个函数,如果你的库中没有这个函数,参照一个这个网站自己创建一下
http://bbs.csdn.net/topics/360036492?page=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2018-05-15
展开全部
select a, wmsys.wm_concat(b) from atest t group by a

结果:

 a   1,2,1

 b   1,3,2


 

select a, wmsys.wm_concat(b)
  from (select distinct a, b from atest) t
 group by a

结果:

a   2,1

b   3,2,1

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海子Goahead
2015-10-06 · TA获得超过310个赞
知道小有建树答主
回答量:462
采纳率:0%
帮助的人:291万
展开全部
Select distinct column_name from table_name
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式