A表:id a1 a2
1 …… ……
2 …… ……
3 …… ……
…… …… ……B表:id b1
1 手机
1 笔记本
2 手机
3 手机
3 笔记本
3 平板
…… ……
其中A,B以id关联。
要得到:id a1 a2 b1
1 …… …… 手机,笔记本
2 …… …… 手机
3 …… …… 手机,笔记本,平板
…… …… …… ……求简单的方法实现,最好一句sql,就是把B表中的id对应的b1全部放在一个单元格里。求大神。
1 …… ……
2 …… ……
3 …… ……
…… …… ……B表:id b1
1 手机
1 笔记本
2 手机
3 手机
3 笔记本
3 平板
…… ……
其中A,B以id关联。
要得到:id a1 a2 b1
1 …… …… 手机,笔记本
2 …… …… 手机
3 …… …… 手机,笔记本,平板
…… …… …… ……求简单的方法实现,最好一句sql,就是把B表中的id对应的b1全部放在一个单元格里。求大神。
解决方案 »
- 用一个表字段关联更新另一个表字段
- oracle中游标的where条件中可以有case when 语句吗,具体写法是什么?
- 在oracle 下执行sql 批处理语句,如何隐藏窗口??
- exection plan的问题
- 谁有CNOUG论坛的邀请码,给我一个啊,不胜感激!
- 无奈啊!!!!!!大家帮忙!!谢谢!
- Oracle数据库互联问题
- 新手问题:如何实现在JOB中的时间判断?
- 求大神看一个功能给点思路
- 关于AIX下oracle 11g 报ora-04030错误的问题
- 关于rownum的执行顺序问题,求解
- ORA-03137: TTC 协议内部错误: [12333] [76] [76] [79] [] [] [] []
from a
left join b
on a.id = b.id
group by a.id;
b as (select id,wm_concat(b1) w from B group by id)
select distinct(a.id) id,b.w w from a left join b on a.id=b.id
select a.id,a.a1,a.a2,b.b1 from a join b on a.id = b.id
WITH t AS(
SELECT 1 AS ID,'笔记本' AS b1 FROM dual UNION ALL
SELECT 1 ,'手机' FROM DUAL UNION ALL
SELECT 2,'手机' FROM DUAL UNION ALL
SELECT 2,'手机' FROM DUAL UNION ALL
SELECT 3,'笔记本' FROM DUAL UNION ALL
SELECT 3,'平板' FROM DUAL UNION ALL
SELECT 3,'手机' FROM DUAL
)SELECT T.ID,WMSYS.WM_CONCAT(DISTINCT T.B1) FROM T GROUP BY ID;