2 wlasd4682 wlasd4682 于 2014.04.23 11:13 提问

一个ORACLE字段包含多个ID如何解决

表1:

+------------+--------------+-----------------+
| product_id | product_name | product_type_id |
+------------+--------------+-----------------+
| 1 | 产品A | 1,2 |
| 2 | 产品B | 2,3 |
+------------+--------------+-----------------+
表2:

+-----------------+-------------------+
| product_type_id | product_type_name |
+-----------------+-------------------+
| 1 | 类别1 |
| 2 | 类别2 |
| 3 | 类别3 |
+-----------------+-------------------+:

生成以下效果:

+------------+--------------+-----------------+
| product_id | product_name | type |
+------------+--------------+-----------------+
| 1 | 产品A | 类别1,类别2 |
| 2 | 产品B | 类别2,类别3 |
+------------+--------------+-----------------+

在网上查了都是关于mysql的语句如:select product_id,product_name,group_concat(product_type_name) as type from ab,ac where instr(ab.product_type_id,ac.product_type_id) group by product_id,product_name;

可是在oracle上不能用求大神帮忙呀!

1个回答

swings2010
swings2010   2014.06.15 12:53
已采纳

select product_id,product_name,listagg(product_type_name,',')
within group(order by product_id,product_name) as "type"
from table1,table2 group by product_id,product_name
11g方可使用

如果版本过低,使用wm_concact函数代替

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!