Oracle将列与逗号分隔值组合在一起

时间:2013-01-16 19:34:23

标签: oracle11g

我有一个表格,如每行“1,2,3,4,5,6,7”,如

ID Value
101  5,6,7
201  8,9,3
301  3,4,5

值列值是其他表B的外键 表B

5 A
6 C
7 N

有什么办法可以在一个查询中将这两个表连接在一起吗? 我想传递101并获得A C N值。

1 个答案:

答案 0 :(得分:3)

如果您的模型如图所示,是这样的吗?

select a.id, listagg(new_value, ',') within group (order by new_value) new_value
  from a 
       inner join b 
               on ','||a.value||',' like '%,'|| b.value ||',%'
 group by a.id

http://www.sqlfiddle.com/#!4/74e46/1