欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

*sql中根据某字段将另一字段相连*初学者*

更新时间: 2014-01-05 02:13:42 责任编辑: Author_N1

 

*****sql中根据某字段将另一字段相连***菜鸟求助*****
现在有一张数据表:Table1
FcaID  FSec  FName
001     1    卡片1
001     2    卡片2
002     1    卡片3
002     2    卡片4
002     3    卡片5

说明:同一个FcaID可能对应着N条记录(1=<N<=10)

如果不通过写存储过程或函数,只用sql,能否实现以下取数:
FcaID     FName
001    卡片1卡片2    
002    卡片3卡片4卡片5

在线等,多谢~~~~~~
--参考方法--
引用:
Quote: 引用:

现在有一张数据表:Table1
FcaID  FSec  FName
001     1    卡片1
001     2    卡片2
002     1    卡片3
002     2    卡片4
002     3    卡片5

说明:同一个FcaID可能对应着N条记录(1=<N<=10)

如果不通过写存储过程或函数,只用sql,能否实现以下取数:
FcaID     FName
001    卡片1卡片2    
002    卡片3卡片4卡片5

在线等,多谢~~~~~~




select a.FcaID,concat(a.FName,b.FName) from Table1 a, Table1 b group by a.FcaID;


这个有点问题,不对

--参考方法--
with table1 as 
(
select 001 FcaID,'卡片1' FName from dual union all
select 001 FcaID,'卡片2' FName from dual union all
select 002 FcaID,'卡片3' FName from dual union all
select 002 FcaID,'卡片4' FName from dual union all
select 002 FcaID,'卡片4' FName from dual 
)
select FcaID,listagg(FName, '') within group(order by rownum),replace(to_char(wm_concat(FName)),',','')   from table1 group by FcaID


两种方法
 一种wm_concat 这种文档不推荐 12c已经去掉
 一种 listagg  推荐方法,可排序,可改变连接符

--参考方法--
quote=引用:]
引用:
Quote: 引用:

大神们,帮帮忙啊

1#不行?


哥们,我按照这个改成我的表名和字段....报错了啊。能不能帮我改成我这个表的字段和表名?谢谢~
哥哥,还不行?
with table1 as
 (select 001 FcaID, '卡片1' FName
    from dual
  union all
  select 001 FcaID, '卡片2' FName
    from dual
  union all
  select 002 FcaID, '卡片3' FName
    from dual
  union all
  select 002 FcaID, '卡片4' FName
    from dual
  union all
  select 002 FcaID, '卡片4' FName from dual)
SELECT A.FcaID,
      MAX(REPLACE(SYS_CONNECT_BY_PATH(FName, '—'), '—', ''))
  FROM (SELECT T.*,
               ROW_NUMBER() OVER(PARTITION BY FcaID ORDER BY FName) AS RN
          FROM table1 T) A
 START WITH RN = 1
CONNECT BY PRIOR RN = RN - 1
       AND PRIOR FcaID = FcaID
 GROUP BY FcaID;

[
--参考方法--

select FcaID,listagg(FName,'') within group(order by FcaID) as newcol  from table1 group by FcaID
/
--参考方法--
concat有什么问题,多了个分隔的逗号么,那在处理下啊,listagg要11g的版本
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:13:42
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7203/
本文WWW.DOC100.NET DOC100.NET版权所有。