oracle 怎么将查询到一列的数据 合并成一个字符串返回来 用“,”分割 如(张三,李思,。。。。)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 怎么将查询到一列的数据 合并成一个字符串返回来 用“,”分割 如(张三,李思,。。。。)相关的知识,希望对你有一定的参考价值。
oracle 9i
参考技术A 假设你的表结构是tb_name(id, remark),则语句如下:SELECT
a.id,
wm_concat (a.remark) new_result
FROM
tb_name a
group by
a.id
用wm_concat ,明白了吧追问
我的是 9i 的 图示wm_concat 无效标识符、、、
追答WMSYS.WM_CONCAT 用这个试试
追问也是提示无效字符串 9i 有很多特殊的地方么?
追答9I不支持,真郁闷
参考下资料吧
http://apps.hi.baidu.com/share/detail/23073276
谢了。
本回答被提问者采纳 参考技术B select wmsys.wm_concat(name) from table; 不过查出来得没有顺序,因为oracle暂时不支持顺序排列~不好使就用sql语句吧查出来得数据放到一个list中,然后用java语句给输出出来不久完事了。只要达到后期想要的效果就成呗,软件是死的,人是活的。追问
额 我刚是想能不能直接出来呢。 谢了
追答哦
参考技术C 可以用游标来实现。【Excel】多列数据合并为一列
参考技术A 由于问卷系统的问题,导出的数据是每个选项为一列,但分析时需要将单选题的多列数据合并为一列,才方便做透视表或spss分析。如下图的性别数据:
性别数据举例
Excel中有以下几种方法可以达到合并效果:
准备操作:将A列1替换为男,B列1替换为女。
1、操作技巧法 。【适合少列数据合并为一列】
操作: 选中A列,ctrl+g定位,选中定位条件,选择空值,点击确定。选中空值后,右击选择删除,选择右侧单元格左移,点击确定,即可完成。
原理 :用B列的数据替换A列的空值。
注意:此方法需将要合并的数据单独列出一个sheet表,否则会导致其他列数据部分左移。
选中A列,ctrl+g定位,选择定位条件
选择空值
点击删除
选择右侧单元格左移
2、 公式法 。
(1) &连接符 。【适合少列数据合并为一列】
操作: 增加一列C,在C3单元格输入公式 =A3&B3 ,即将A3和B3合并为C3。鼠标放置C3右下角,当鼠标变为黑色 + 号,双击,自动填充整列,即可完成。
原理 :将A3、B3的内容合并,空值不显示。
C3=A3&B3
双击黑色+字,自动填充
(2) concatenate 函数 。【适合少列数据合并为一列】
操作: 增加一列C,在C3单元格输入公式 =concatenate(A3,B3) ,即将A3和B3合并为C3。鼠标放置C3右下角,当鼠标变为黑色 + 号,双击,自动填充整列,即可完成。
原理: concatenate函数是将多个文本字符串合并为一个,空值不显示。
注意:括号为英文括号,数据之间用英文 逗号 。
C3=concatenate(A3,B3)
(3) phonetic 函数 。【适合多列数据合并为一列】
操作: 增加一列C,在C3单元格输入公式 =phonetic(A3:B3) ,即将A3和B3合并为C3。鼠标放置C3右下角,当鼠标变为黑色 + 号,双击,自动填充整列,即可完成。
原理:phonetic函数是获取一定范围内代表拼音信息的数值,空值不显示。
注意:括号为英文括号,起始数据和终止数据之间用英文 冒号 ,适合多列数据合并。
C3=phonetic(A3,B3)
(4) if 函数 。【比较复杂,但可以不用将原数据替换】
操作: 增加一列C,在C3单元格输入公式 =if(A3=1,"男","女") ,表示如果A3=1,即呈现“男”,否则呈现“女”,将A3和B3合并为C3。鼠标放置C3右下角,当鼠标变为黑色 + 号,双击,自动填充整列,即可完成。
原理: if函数列出了条件,当满足条件1,呈现结果1,满足条件2,呈现结果2。
注意:引号为英文括号。若是多列数据合并,公式为 =if(A3=1,"18岁以下",if(B3=1,"18-25岁",if(C3=1,"26-30岁"))) ,有多少列数据就写多少个if和括号。
=if(A3=1,"男","女")
结语
方法不在多,在于顺手。选择自己喜欢的方法,常加练习,就能提高数据分析效率。
以上是关于oracle 怎么将查询到一列的数据 合并成一个字符串返回来 用“,”分割 如(张三,李思,。。。。)的主要内容,如果未能解决你的问题,请参考以下文章