怎么将一个表搜出来的一列转换成用逗号分隔的一行?

孙月魂 2014-09-05 12:07:07
比如:
表t1 表t2
A B C D
3 2 3 6
3 4 7 8

通过类似select C,D,xxxxxx F from (select B from t1 where A=t2.c) t3,t2
让结果变为:
C D F
3 6 2,4


要怎么做?

...全文
123 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
孙月魂 2014-09-05
  • 打赏
  • 举报
回复
多谢大家
huangdh12 2014-09-05
  • 打赏
  • 举报
回复
SELECT C,D,WM_CONCAT(A) FROM (Select t2.C,T2.D ,T1.A FROM T1,T2 WHERE T1.A = T2.C) T3 GROUP BY C,D
CT_LXL 2014-09-05
  • 打赏
  • 举报
回复
引用 楼主 speak13579 的回复:
比如: 表t1 表t2 A B C D 3 2 3 6 3 4 7 8 通过类似select C,D,xxxxxx F from (select B from t1 where A=t2.c) t3,t2 让结果变为: C D F 3 6 2,4 要怎么做?

with t1 as
 (select 3 A, 2 B FROM DUAL UNION ALL SELECT 3 A, 4 B FROM DUAL),
T2 AS
 (select 3 C, 6 D FROM DUAL UNION ALL select 7 C, 8 D FROM DUAL)
SELECT C, D, MAX(F)F
  FROM (SELECT T2.C, T2.D, TO_CHAR(wm_concat(T1.B) OVER(ORDER BY T1.B)) F
          FROM T1, T2
         WHERE T1.A = T2.C)
 GROUP BY C, D;
sych888 2014-09-05
  • 打赏
  • 举报
回复
SQL> select deptno,wm_concat(ename) bb from emp group by deptno; DEPTNO BB ---------- -------------------------------------------------- 10 CLARK,KING,MILLER 20 SMITH,FORD,ADAMS,SCOTT,JONES 30 ALLEN,BLAKE,MARTIN,TURNER,JAMES,WARD

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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