如何将Oracle中同一列的多行记录拼接成一个字符串

 我来答
刺友互
高粉答主

2019-05-27 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:68.5万
展开全部

1、新建php文件。

2、声明数组变量。

3、用implode函数使数组拼接成字符串,连接符为-。

4、输出连接后的字符串。

5、预览效果如图。

6、用implode函数使数组拼接成字符串,连接符为?。

7、预览效果如图。

badkano
推荐于2017-09-30 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885364
团长

向TA提问 私信TA
展开全部

需要用wm_concat函数来实现。

如目前在emp表中查询数据如下:

要按照deptno相同的将ename以字符串形式合并,可用如下语句:

select deptno,wm_concat(ename) from emp group by deptno;

查询结果:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笨笨AExo1
推荐于2017-10-02 · TA获得超过191个赞
知道答主
回答量:175
采纳率:100%
帮助的人:101万
展开全部
我们常常说 用SQL将Oracle中同一列的多行记录拼接成一个字符串是如何实现的:[sql]-- 原始数据-- a 111-- b 222-- a 333-- a 444-- b 555-- 最终结果-- a 111*333*444SELECTL4.L_TIME,MAX(SUBSTR(L4.分组内容,2)) 最终字段值FROM(SELECTL3.L_TIME,SYS_CONNECT_BY_PATH(L3.L_CONTENT,'*') AS 分组内容FROM(SELECTL2.L_TIME,L2.L_CONTENT,L2.L_TIME||L2.分组内编号 AS 分组字段加编号,L2.L_TIME||(L2.分组内编号-1) AS 上级分组字段加编号FROM(SELECTL1.L_TIME -- 分组依据,L1.L_CONTENT -- 同一列中 要合并的不同行 的值,ROW_NUMBER() OVER (PARTITION BY L1.L_TIME ORDER BY L1.L_CONTENT ASC) 分组内编号FROM LOGS L1) L2) L3START WITH L3.上级分组字段加编号 LIKE '%0'CONNECT BY PRIOR L3.分组字段加编号=L3.上级分组字段加编号) L4WHERE L_TIME='111'GROUP BY L4.L_TIME-- ROW_NUMBER() OVER(PARTITION BY A ORDER BY B DESC) 新列名-- 根据A分组,在分组内部根据B排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)-- SYS_CONNECT_BY_PATH 函数: 第一个参数是形成树形式的字段,第二个参数是父级和其子级分隔显示用的分隔符-- CONNECT BY PRIOR 是标示父子关系的对应-- START WITH 代表你要开始遍历的的节点
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hanks_gao
2015-10-07
知道答主
回答量:21
采纳率:0%
帮助的人:1.9万
展开全部
with temp as(
  select 'China' nation ,'Guangzhou' city from dual union all
  select 'China' nation ,'Shanghai' city from dual union all
  select 'China' nation ,'Beijing' city from dual union all
  select 'USA' nation ,'New York' city from dual union all
  select 'USA' nation ,'Bostom' city from dual union all
  select 'Japan' nation ,'Tokyo' city from dual
)
SELECT nation,listagg(city) within GROUP(ORDER BY city)
FROM temp
Group BY Nation;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nweibd
2015-10-27 · TA获得超过394个赞
知道小有建树答主
回答量:533
采纳率:54%
帮助的人:182万
展开全部
使用CURSOR循环拼接即可!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式